Refactoring: namespace changes, classes taken to their own files etc
Due to marshalling took care of managed array - no need to have another argument here
Renamed AttributeExtensions -> ReflectionExtension
Turns out UIA doesn't support arrays for custom patterns. Throws argument is out of expected range if such type passed for pattern registration. Removed array types from corresponding schema maps and tests. Added test that verifies registration
Renamed attribute-driven pattern interfaces for tests so that they won't duplicate another ones.
fixup! Turns out UIA doesn't support arrays for custom patterns
Implemented general pattern handler (properties only for now).
Slightly simplified reflection code
Added extensible comment and moved p/invoke method declarations to Core lib