Added System::Type

Added TypeInfo for all relevant types
Added comments
Updated DependencyProperty to work with System::Type
Fixed casing on PropertyMetadata