Bug #1354 - ViewComponent View() fails on CoreCLR with IEnumerable<> pas...

Bug #1354
Fix - When the model is passed in to a View, ViewDataDictionary sets it. During this process, we recurse through all the properties and create FastPropertyGetters for each of them. In this case, since it is an enumerable, the properties which we recurse through are not the elements of the collection but the properties of the Enumerable instead. i.e - Enumerable.Current. Creating getters for these properties are not necessary. The fix moves the property iteration step to a place where the properties are actually requested.
I don't love this pattern (partially initialized cached data). The problem is that it becomes easy to ask for one thing when you want the other. If you look at the usage, `typeInfo.Prototype` is never used in the same place as `typeInfo.Properties`. 

Suggestion: split these out into separate caches and add a `GetTypePropertyInformation(Type)` private method which caches the properties for a type separately.