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
why is this not using the overload that create cached propertyhelpers? Is it because this class does its own caching? It still might make sense to just reuse the app wide cache for property accessors?