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
:+1: for moving to property helper. It is used in property helper and in other cases where property helper is used, so it all makes sense.