WA30: WebAPI: Owin SendResponseMessageAsync change ToArray to AsArray for performance.

In Owin WebAPI scenarios, calls to ToArray are taking at least 1.1% of CPU and allocating and copying at least 2 arrays per request. The input data is already an array in the common case, so converting from ToArray to AsArray avoids this.
WA31A: WebAPI: HttpServer: Avoid repeated GenericPrincipal allocation.

After conversion to async/await, WebAPI async scenarios started showing > 2.1% of CPU and multiple allocations per request from Thread.get_CurrentPrincipal. The conversion exposed a latent problem that if get_CurrentPrincipal has not been called on the spawning thread then it will allocate new instances each time it is read from any asynchronous code. This change works around the repeated allocation by reading during initialization. It also removes a redundant Lazy<T> from the code path that uses this.