Issue #1311: Samples should be able to run on Mono.
Fix: Adding support for Kestrel server and fixing the paths for mono.
Remove unnecessary references from project.json
[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.
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