The main change is adding multithreading support in order to make JSON
unit tests work properly. The TLS overhead is not _that bad.
Other changes:
* Switch to `io::Result`, because `AllocError` doesn't
transmit error codes (meh!)
* Reduce x86 commit chunk size to 32KiB
* Improved performance slightly by inlining harder (`alloc_uninit`)
and outlining the result unwrap (`alloc_raw_bump`)