Distributed Cache & Session

This includes IDistributedCache, a Redis implementation, an MemoryCache implementation.

It also includes Session middleware.

See https://github.com/aspnet/HttpAbstractions/pull/138 for related object model additions.

The goal is to get this reviewed and merged before continuing on with the concurrency work. It's expected that IDistributedCache design will need adjustments at that point, so please focus on the Session API and behaviors for now.
Note to file another issue, this would be a lot cleaner if the IDistributedCache was Stream based - the BufferBuilder wouldn't be needed and BinaryWriter would take care of the int and string to byte[] details.