[Fixes #1389] Can't bind complex type data from route parameters.

Changed DictionaryBasedValueProvider to do a prefix check instead of just checking if the underlying
dictionary contains the key.
Correct initialization of `IdAttributeDotReplacement
- #704 part 1 of 2
- doesn't help tag builders unless done in `DefaultHtmlGenerator`
Sanitize "id" attributes for HTML 4.0.1
- #704 part 2 of 2
- change `@Html.Id()` to sanitize return value; was identical to `@Html.Name()`

Copied `TagBuilder.CreateSanitizedId()` and `TagBuilder.Html401IdUtil` from MVC 5.2
- except this `CreateSanitizedId()` returns a valid identifier if first `char` is not a letter
 - e.g. "[0].Name"

nits:
- expand variable names, use lots of `var`, put `public` members first
- add doc comments for `CreateSanitizedId()`

Note users will be able to apply different sanitization once we fix #1188.
Fix for #1366 - Remove Injector
Adding support for bind attribute.
Issue #1214: Cannot pass a int parameter to the views from ViewComponent.
Fix: Checking if the model is not null in the Copy constructor of ViewDataDictionary.
Fix #1287 - Port WebAPI parameter binding behavior

This change modifies the default parameter binding behavior for an
ApiController to use the WebAPI rules.

'simple types' default to use route data or query string
'complex types' default to use the body (formatters)

Adds ModelBindingAttribute to enabled model binding
Porting over unit tests for ViewDataDictionary.Eval

Partial fix for #453
Fix for #1401 - Change namespace of HttpResponseException
Adding PropertyFilter instead of depending on model metadata to concatenate Metadata for parameter/property and type metadata
Renaming IBinderMarker and friends to some more descriptive names.
Removing BodyParameterInfo and ParameterBindingInfo

These have been superceded by the BinderMetadata property on
ParameterDescriptor.
Initial commit
refactor application model, and implement web pages ADP
Now make it work
Fix catchall route definition so binding actually works
Update options to support separate base path and folder path
Support paths starting at root, by using an actionconstraint
First update towards getting routed views
Support routed views part 2.
Refactor