Port Facebook middleware from Katana.

Depends on https://github.com/aspnet/HttpAbstractions/pull/113
TODO: CoreCLR WinHttpHandler does not yet support custom server cert validation.
I wonder - with the vNext `IOptionsAccessor<TOptions>` would we change how that last object could be passed in? Don't need to change in this PR, but something to consider