Changed the texture caching system to rely on data cache and locked cache events to invalidate textures.  This bypasses the constant hashing of textures performed by the old system.  Games that need EFB to RAM gain the most speed-up from this change.  The Last Story, Super Mario Galaxy and NSMBW gain a speed-up from this change.

The main changes are:
* Track where the game stores the textures in memory
* Invalidate textures when the CPU flushes the Data Cache.
* Invalidate textures that are stored within the Locked Cache.
* Removed the Texture Cache Accuracy option (no longer relevant)
* Removed the EFB Cache option (no longer relevant)
Added a function to invalidate paletted textures when TMem has been updated.  Fixes the mini-map in ZTP.
Added a check for invalidated textures in the Cleanup function.  Fixes the intro of Pandora's Tower.
Corrected the rounding when scaling the EFB.  Thanks to Eldray for the patch.
Added includes to fix compilation on Linux
Removed the speed hack for invalidating paletted textures.  Fixes the mini-map in the GC version of ZTP.
Created a separate case for EFB to Texture with the same behaviour as the old system.  Fixes the issues found with that option like the blurred screen in Pandora's Tower and the missing outline in DBZBT3.
Replaced the InvalidatePalette function with a faster check in EFB to RAM for invalidated textures.
Added a check for texture dimensions before caching efb copies.  Fixes the zoom flicker in ZTP.
Added a watermark before killing old textures.  This keeps textures in the cache for longer if the game is not loading many new textures.
Changed the default hash algorithm from Murmur3 to Fletcher for non-SSE4.2 CPU's.  This fixes the missing text in some games.
Moved the texture cleanup inline with the texture loading.  This is an attempt to fix the sync that resulted in flashing textures.
Added MurmurHash3 32bit and made it the default hash function.  Fixes the corrupt graphics in MP2.
Reverted the inlining of the texture cache cleanup as it did not fix the flickering issue.
Raised the number of samples when hashing palettes, depending on the palette size.
Fixed the invalidation of mipmaps, used by the floor reflections of GoldenEye 007.
Added code to invalidate textures on dcbz.  Fixes the intro video of Starfox Assault.
Marked textures created by EFB to texture as valid.  Fixes some misplaced textures in Indiana Jones: Staff of Kings.
Invalidate palette textures after one frame.  Fixes the missing text in Pokemon Battle Revolution.
Rearranged the texture cache cleanup and invalidation.  Fixes the slow speed in F-Zero GX's car selection screen.
Invalidated textures on dcbi.  Fixes the misplaced textures in Metroid Prime.
Started to get Hi-Res textures working again.
Fixed TMem caching.  Eliminates the slow speed in "Harvest Moon: A Wonderful Life" menu and night scenes.
Corrected the texture ID for TMem textures.  This results in more cache hits in games like MGS:TS.
Checked for invalidated textures before using them.  Corrects the missing textures in "The Last Story."
Fixed the floor reflections in GoldenEye 007.
Fixed the slow speed in Rhythm Fever's dialogue scenes.
Added a speed hack in EFB to RAM to copy the EFB only if the game reads from the copy.  Speeds up NSMBW and MKDD.
Removed the invalidation of EFB textures via the dcbX instructions.  EFB textures are not cached by the data cache.  Fixes the missing portraits in F-Zero GX.
Hash the EFB to RAM copies.  Speeds up World 2-2 in NSMBW and Punch-out.
Calibrated OpenMP texture decoding so that it does not slow down games when used.
Invalidated EFB to Texture textures.  Fixes the misplaced textures in the underground levels of NSMBW.
Rearranged the EFB copy logic to update RAM after the game has read the texture it copied the EFB contents into.  Speeds up NSMBW.
Invalidated the full range of EFB copies.  Fixes the glitches in Okami.
Made further progress on compatibility with custom textures.
Removed the speed hack from 3.0-701 (r547cca7e1ba4) as it caused EFB corruption in Tales of Graces.
Made the EFB to Texture option hash textures.  Making this option hashless caused glitches and slowdown.
Checked if the texture format has changed before using the cached texture.  Fixes the colours and corrupt graphics in Spider-Man: Shattered Dimension.
Readded the speed hack from 3.0-701 with an additional check for invalidated EFB copies.  This fixes the EFB corruption in Tales of Graces (where the speed hack will automatically turn itself off) and keeps the speed hack enabled for other games.
Perform a full search for both paletted textures and non-paletted textures when invalidating.  Fixes the glitch with the background overlay in Okami.
Reintroduced the "SafeTextureCacheColorSamples" in the game ini allowing hi-res texture packs to specify the number of samples needed.
Retrofitted the old hash code for EFB to RAM which will be used for custom textures.
Forced EFB to texture to a minimum 32 sample hash.  Fixes the slow speed in EFB to texture.
Some minor code refactoring.
Added code to detect if the CPU reads from the EFB RAM address and update the EFB copy if that is the case.  Fixes the scanning of objects in Metroid Prime 2.
Changed the default hash algorithm back to Murmur3 64bit as the 32bit generated hash collisions with EFB to texture, making some games slow.
Merged conflicts after rebasing to master rb4ec836aca43.
Used the game map to detect if EFB copies have been overwritten, instead of using an invalid hash.  Fixes the scaled EFB issue in Xenoblade Chronicles.
Hash paletted textures.  Fixes the landscape in Worms Battle Island and the intro video in T3: Redemption.