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
`virtual` properties get merged, but unfortuantely not `new` ones. I have a bug tracking this - https://github.com/aspnet/Mvc/issues/713. Seems like an edgy case but would be worth comparing the behavior with Mvc 5.0.

Removing the check causes test faiulres due to Mock. The base type has a `public Mock Mock {get; }` property and the derived type has a `public new Mock<T> Mock { get; }` and property helper discovers both of them.