WA29: WebAPI: ApiController. Reduce overhead of filters when not used.

The handling of filters adds considerable overhead to WebAPI scenarios even when the feature is not being used. This change avoids the allocation and execution of delegates, closures and tasks for the default cases where the action, authorization or authentication filters are not in use. 1% througphput improvement measured.
WA26: WebAPI: XmlMediaTypeFormatter: Avoid ConcurrentDictionary.GetOrAdd.

WebAPI scenarios areimpacted by delegate and closure allocations which take up 12.78% of allocations. This change avoids 6 of these per request by avoiding ConcurrentDictionary.GetOrAdd for cache lookups and using TryGet and TryAdd instead.
DCN095: WebAPI: MediaTypeFormatterCollection: Simple change notification.

Minimal change notification on MediaTypeFormatterCollection is needed by subsequent caching changes.
DCN10: WebAPI: DefaultContentNegotiator: Use cached writing formatters.

DefaultContentNegotiator.

Negotiate is performance sensitive, taking 7% of CPU. 2 of the 4 default media formatters are read-only. The writable ones can be cached to reduce loop iterations and avoid the slow looping over the Collection<T> through IList<T>.