Extended TagHelpersWebSite and added relevant functional tests to test ModelMetadata with TagHelpers

@pranavkm no.  The existing tag helpers all focus on entire elements -- `<a/>`, `<form/>` and various input elements.  So `@Html.DisplayNameFor()` is too low-level.

Further no existing tag helper handle collections or complex objects as `@Html.Display[For]()` and `@Html.Editor[For]()` do.  (The closest is the `<input/>` tag helper which makes metadata-driven choices of format and generated `type` for individual properties.)