* remove chronos dependency
The `chronos` backend currently does not work as it relies on nesting
`waitFor` calls, which is not supported by chronos itself - as such,
this PR disables the backend in testing and prints a recommendation to
users to avoid it until the problem has been resolved.
faststreams used without `async` continues to work as normal, which also
is the most common way to use it - the dependency on chronos in the
nimble file is unattractive from a user perspective since it also leads
to the the downloading of bearssl and other deps.
Hopefully, by the time the chronos backend can be used, we can also
specify conditional dependencies in nimble files.
* run chronos tests in CI
* CI: test with multiple Nim versions
* fix readIntoExImpl() when premature EOF is triggered on some Windows versions
* also fix some unrelated pointer math
Chronos support is optional and should not have to be imported in order
to use faststreams for non-async use cases, as doing so pollutes the
global namespace and slows down compilation.
`async` support must now explicitly be enabled with
-d:async_backend=chronos|asyncdispatch