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
nit:
```
parameterPrototype
   .IncludedProperties
   ?.Intersect(typeInfo.Prototype.IncludedProperties, StringComparer.OrdinalIgnoreCase)
   .ToList();