Improve performance of ForgetFunctions().

Mostly matters during shutdown, but also module unload.
Small optimization to __PPGeInit().

Small factor in startup time.
Small optimization to func/var import.

Should compare the nid first, of course, faster and less likely to match
anyway.
Cleanup some old typedefs.
Add an interface to read multiple blocks at once.
Implement optimized multi-block reads for iso/cso.

This of course means less fread() calls, and is faster.  It improves load
time even on my desktop.
Minor tweak to avoid some function call overhead.
Switch to a multimap for the hash->function map.
Use std::unordered_multimaps in a few places.
Warning fixes.
Naturally, modern C++ would not build on Symbian.
Typo.
Merge pull request #7046 from unknownbrackets/perf

Improve load and shutdown performance a bit
Oops, forgot to free up zlib resources.
Actually clear the hash->func map on forget.

Better not to have dangling pointers.
x86jit: Use our sincos funcs for VV2Op as well.

Small (0.7%) speedup in Gods Eater Burst.  There's probably SSE
approximations we could use instead, but those will also need at least xmm
reg flushing/thunking.

At least this avoids flushing gprs, etc.  The sin and cos ops are fairly
common.
x86jit: Add SSE 4.1 rounding ops to emitter.
x86jit: fix rip addressing on PEXTRW/PINSRW.

I think this is right anyway, not 100% sure.
x86jit: Implement other rounding modes in vf2i.

3% improvement in Grand Knights History.  I know other games use these
too.
Fix a small warning on 32-bit.

Would only practically matter for very very large reads on very very large
csos.