Fix (performance improvements) for pixelperfect collision on non-Flash targets (hopefully resolves #769)
Added @crazysam optimizations to avoid unnecessary allocations (except for the BMD cache)
FlxMouse refactor

- changed visible from a property (get, null) to (default, set) to replace show() and hide() (nice side effect: this enables easy toggling via visible = !visible;)
- made "middle-and-right-mouse-buttons-activated" the default by changing the FLX_MOUSE_ADVANCED conditional to FLX_NO_MOUSE_ADVANCED
- show() has basically been a duplicate of load() in the past, that should be used now instead
- removed the useMouse logic from FlxState / FlxSubState / FlxGame, it seems like unnecessary clutter
- marked a couple of fields as @:noCompletion (mostly methods from IFlxInput and for recording)
- restructured the class outline to be more consistent (first public, then private fields etc)
- _matrix now has an underscore
- removed the arbitrary restriction of screenX and Y being Integers instead of Floats
- less redundancy (updateCursor() now uses getScreenPosition() / getWorldPositon())
Changes/optimizations to pixel perfect collision code (now unified for all targets), added FlxBitmapDataPool class for fast retrieving of temp BitmapData
FlxMouse: Some small fixes, made new() / record() / playback() private
FlxMouse compile fix, oops
Merge branch 'dev' of https://github.com/HaxeFlixel/flixel into FlxMouse
Fix state switch mouse visibility, revert screenX and Y to Ints, compile fix for _matrix in destroy()
Merge pull request #786 from azrafe7/hotfix/pixelperfect-collision

Hotfix/pixelperfect collision (should resolve #769)
Non-hacky fix for initial mouse visibility
Merge pull request #794 from Gama11/FlxMouse

FlxMouse refactor
FlxG frontEnds and inputs field visibility cleanup

- made a bunch of previously public fields that were only used internally private via @:allow metadata for a clearer API
- removed the "sounds" from FlxG.sounds.resumeSounds() / pauseSounds() / destroySounds()
- removed toString() from IFlxInput
- more consistent class outlines (first public, then private fields)
Make SoundFrontEnd.destroy() public again