Provide hooks to generate sample objects (fixes #1480)
- https://aspnetwebstack.codeplex.com/workitem/1480
- "SampleGeneration in HelpPage not working for PageResult<T>"
- General gap is support for creating complex objects lacking a parameterless
constuctor.
- Implemented approach also supports overriding data used in (say) an
ICollection<T>
- New SampleObjectFactories list extends previous ObjectGenerator.GenerateObject()
fallback and is checked after the type-specific SampleObjects property
- Avoids subclassing HelpPageSampleGenerator just to override GetSampleObject()

(cherry picked from commit d618b469626cdc9f628d200e9ccbc66a4e141475)