Changed FlxG.mouse to default/set rather than just public

Previously we set FlxG.mouse to public to allow custom FlxMouse extensions. 

This is an improvement, since you have to be sure to do inputs.add() on your FlxMouse object first. This simplifies things by creating a nice, safely wrapped setter for it all, and properly replaces/destructs the old FlxMouse.

I also cleaned up the destroy() logic in FlxMouse a bit since there seem to be major potentials for memory leak (unremoved listeners, for one).

And I obviously added helper functions to InputFrontEnd that let you do the replacements.