MSVC: Build and test parts of KJ needed in lite mode.

Thanks to Bryan Boreham <bjboreham@gmail.com> for much help getting this started.
Fix MinGW build.
Fix Windows bug that doesn't happen under wine: stdin defaults to text mode, which of course breaks compiler plugins.
Timeouts: Add convenience helpers to kj::Timer interface for adding a timeout to any Promise.
MSVC: Work around constexpr bugs in generated code.
MSVC: All lite-mode tests pass.

The project file still only compiles a test binary, but it should be easy to separate out a library project from here.

Thanks again to Bryan Boreham <bjboreham@gmail.com> for much help getting this working.
Fix build on non-MSVC compilers.
MSVC: Work around some cases where templates nested in templates trigger compiler bugs.