Fix more `Activator.CreateInstance<T>` issues
Fix more `Activator.CreateInstance<T>` issues

1. Disallow allocating interface types
2. Disallow allocating abstract types with public ctors (those should not be considered "Default ctors" in NUTC)
3. Throw the right exception type

The CLR will also have separate exception messages for these (the same exception type though), but I guess we can wait until somebody complains about that. Two reasons:
One - we would need to find a way to not duplicate the messages with what we already have in Reflection.Core (for the `CreateInstance(Type)` path). Not difficult, but annoying.
Two - right exception message for abstract types is a bunch of NUTC work. I might fix that in CoreRT compiler.

[tfs-changeset: 1646885]

sandreenko/corert,krytarowski/corert,yizhang82/corert,shrah/corert,shrah/corert,gregkalapos/corert,tijoytom/corert,gregkalapos/corert,shrah/corert,gregkalapos/corert,krytarowski/corert,yizhang82/corert,sandreenko/corert,shrah/corert,tijoytom/corert,tijoytom/corert,sandreenko/corert,tijoytom/corert,krytarowski/corert,gregkalapos/corert,botaberg/corert,botaberg/corert,sandreenko/corert,krytarowski/corert,botaberg/corert,botaberg/corert,yizhang82/corert,yizhang82/corert