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())
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()
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
Debugger: Remove the BmpLog window for now

It's only half-implemented / hidden behind a FLX_BMP_DEBUG conditional nobody knows about, it's confusing to have in FlxG's outline
Restore CameraFrontEnd.get_bgColor()
Merge branch 'dev' of https://github.com/HaxeFlixel/flixel into dev