Fixed a bad merge issue and some internal API cleanup.
Sometime ago when the SystemVStructs branch was PRed into master a bad
merge has occured.
Some struct classification cleanup for native vs. managed struct layout
representation.
When classifying a native layout of the struct use the following
algorithm.
1. If the struct has special marshaling it has a native layout.
In such cases the classifier needs to use the native layout.
2. For structs with no native layout, the managed layout should be used
even if classified for the purposes of marshaling/PInvoke passing.