fix several integer overflows, improve logging performance, resolve compiler warnings

- Resolves several MSVC and GCC compiler warnings as noted in the commit descriptions.
- Enables compilation with `/W4` on MSVC and without `-Wno-sign-compare` on GCC.
- Fixes a bug in the handling of the `UTP_LOG_*` flags.
- Stops invoking `snprintf`/`vsnprintf` when a log level is disabled.
- Prevent lookup of `conn_id` `0x00010000` or `0xFFFFFFFF` when adding or subtracting 1 after casting `uint16` to `uint32`.
- Allows `utp_contexts` used in different threads to `utp_writev` at the same time without overwriting each other's `utp_iovecs`.
- Fix off-by-one error when appending to `rst_info`.
- Do not wrap `uint32`-cast-to-`uint64` millisecond count on Windows after 49.7 days.
- Make `min_window`, `max_window_increase` and `rto` configurable at run-time.