Modify AssociatedMetadataProvider to use PropertyHelper to create accessor

Additionally change it to use TypeExtensions.GetReadableProperties to get
property list. This causes it to ignore indexers which should not be
considered.

Fixes #595
@dougbu I'm not sure what tests you are referring to. @pranavkm is saying to explicitly ignore the item property is a desired behavior. Also propertyhelper is not just for anonymous object in the old Web API and MVC code base we explicitly handle the non anonymous object cases. So yes this comment should go away, but the behavior is still correct.