Use VirtualAlloc rather than VirtualProtect on Windows to change page
protection, as the latter can cause severe performance issues with some
antivirus software.
Added noexcept to lots of hash- and bitmap-related things, and added a
little more error checking. Yes, I realise it will abort if an
allocation fails while printing a log message, but if you get to that
point, you're probably screwed already.