MVC: Optimizations to DefaultModelBinder.BindProperties.
use OData instead of odata
make urlhelper mock friendly.
#685 Fix for MVC areas do not support RouteCollection.LowercaseUrls
Incorporate review feedback for Web API authentication filters.
Incoporate review feedback for MVC authentication filters.
AA06: TaskHelperExtensions: Convert CastToObject to use async/await.

WebAPI scenario profiles indicate significant overhead from Task. This conversion reduces task overhead for the WebAPI Async scenarios.
WA02: WebAPI: HttpRouteCollection: Replace Collection with List for performance.

The method HttpRouteCollection.GetRouteData in the WebAPI Async Get scenario takes 2.68% of CPU and 3% of allocations. This change removes the enumerator allocation and speeds up the looping inside this method.
WA01: WebAPI: ParseMediaTypeHeaderValue: Remove String.Split call.

WebAPI Async Get scenarios are allocation-intensive. The String.Split calls in ParseMediaTypeHeaderValue are the 3rd most intensively allocating leaf functions. This change eliminates the string arrays from this call.
WA04: WebAPI: ActionSelectorCacheItem.FindActionUsingRouteAndQueryParameters: Optimize Linq over Array.

WebAPI Async SelfHost is impacted by overhead of Linq and foreach operations over data stored in Array.

Linq iterators are 1.25% of allocations, Linq helpers are 3.23% of exclusive time, Array enumerators are 0.97% of allocations and Delegates are 8.05% of allocations.
WA05: ApiControllerActionSelector.RunSelectionFilters: Remove Linq over Array.

WebAPI Async SelfHost is impacted by overhead of Linq operations over data stored in Array. Linq iterators are 1.25% of allocations, Linq helpers are 3.23% of exclusive time, and Delegates are 8.05% of allocations. All are reduced per request by this change.
WA06: HttpActionBinding.ExecuteBindingAsync: Optimize Linq and foreach over Array.

WebAPI Async SelfHost is impacted by overhead of Linq and foreach operations over data stored in Array. Linq iterators are 1.25% of allocations, Linq helpers are 3.23% of exclusive time, Array enumerators are 0.97% and Delegates are 8.05% of allocations. All are reduced per request by this change.
WA07: WebAPI: ModelStateDictionary.IsValidField: Avoid Linq, delegate and closure.

WebAPI Async SelfHost is impacted by overhead of Linq, delegates and closures. Linq helpers are 3.23% of exclusive time and Delegates are 8.05% of allocations with corresponding closures. All are reduced per request by this change.
Issue 841: Remove ParameterInfoExtensions.GetCustomAttributes<TAttribute> (post 4.5 upgrade cleanups)
Code review feedback for SuppressFormsAuth post 4.5 changes.
remove duplication of data from ApiController and ControllerContext

RouteData and Configuration are stored in the request and are duplicated
in ApiController and ControllerContext. This makes writing tests for
controller hard as one has to set this information in two places.

Making UrlHelper sticky on the request so that it is easier to replace it
for cases where you don't pass it around (example odata).
Add support for route templates and route names to the HTTP verb attributes
add route template and name support to HttpDeleteAttribute.
Introduced MapHttpAttributeRoute and added basic functional tests

Add a basic unit test
spiking out the bare bones logic as AR used to have it.

HttpRouteBuilder now parses defaults and constraints and has test coverage.

improved route template parsing in HttpRouteBuilder

brought over built-in inline route constraints from AR.

fixed typos in comments and minor touchup.

other minor updates to comments.

renamed EnumHttpRouteConstraint to EnumNameHttpRouteConstraint to better differentiate its purpose from EnumValueHttpRouteConstraint.

improved constraint parsing regex so that the params groupd didn't capture the enclosing parens.

added unit tests for HttpRouteBuilder covering edge cases with regex params specifying chars that used as tokens in the route template.