Mark ReadKeyThreadProc thread as background to prevent hang on exit.

PowerShell.exe does not exhibit the hang because it hosts the CLR and does
some teardown differently, but pure-managed hosts will get stuck waiting
for this thread unless it is marked as a "background" thread.
Replace slow DateTime.Now calls with Stopwatch (QueryPerformanceCounter)

It's an order of magnitude faster. We don't need all the fancy time info
given by DateTime.Now anyway; we just need an accurate timestamp.

There's also a correctness issue: when dealing with TimeSpans (what you
get when subtracting DateTimes), the Milliseconds property is not the
same as the TotalMilliseconds property.
Replace static host check in .psd1 with runtime host check in .psm1.

This will allow other hosts to be added to the list of hosts that support
PSReadline. (The PowerShellHost member of the .psd1 can only specify a
single host name.)
Include non-C# files in bin dir.

(so that the whole module can be loaded directly from build output, for
testing)
Runtime host check: instead of known-good list, check for a console.
Add "*.bak*" to .gitignore.