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
This isn't an extension method and therefore shouldn't be in this class.  Further this is called only twice and there isn't much value in making it an extension method.
Why not expose from `PropertyHelper`?