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.