Add FlxG.debugger.
FlxDebugger no longer extends flash.display.Sprite.

Even though the debugger has several overlays (console window, watch windows, etc), it makes no sense to me that it extends flash.display.Sprite. I've created an "overlays" property in the debugger and attached all overlays there.

It will make the FlxDebugger API much simpler because all the inherited flash.display.Sprite methods will be gone.

From now on, plugins and developers can use FlxG.debugger.overlays.addChild() to add their own debug overlays.
Add show/hide/toggleVisibility and remove forceDebugger

The debugger initialization is now "lazy", which means Flixel will initiate a bare minimum debugger at first. If FlxG.debugger.show() is called, the debugger is properly initialized.

It's now possible to programmatically change the debugger visibility using show(), hide() and toggleVisibility().

Since the debugger is now lazyly initialized, I've removed the forceDebugger property in FlxGame. As discussed in #158, it's was causing confusion and problems. If FlxG.debug is false and a developer still wants to show the debugger, a call to FlxG.debugger.show(true) will force the initialization.
Initial structure for interactive debug.

This commit creates a panel with icons at the right of the screen when the debugger is visible. Every icon acts as a tool.

The interactive debug mode will be implemented as a plugin, so developers can turn it on only if it is needed.
Working pointer tool (able to select FlxSprites on the screen).

The drawing code related to the interactive debug is really bad, it needs some love. For now I was only interested to test things out.
Clean up and performance improvements.
It's now possible to select any FlxSprite on the screen (including tilemaps).
New tool: Eraser

This first implementation is quite simple, but it allows developers to remove all selected items. Use the DELETE key to remove an item from the screen (kill() is invoked) or SHIFT+DELETE (kill() is invoked and the item is removed from the parent group).
First implementation of Mover tool.
Ability to unselect items.
Small refactor to allow new selections and per tool drawing.
Early implementation of Tile tool.
Make the API more solid and organized.
Re-factor Eraser tool.
Refactor de Mover tool.
Tweaks to the selection in the Pointer tool.
Adjust Tile tool to new format.
Nice little icons for each debug tool.
Some usability tweaks.

The Tile tool has been commented out. It's not fully working.
Remove getter to access FlxG.debugger.overlays

From now one developers must use FlxG.debugger.addOverlay*() and FlxG.debugger.removeOverlay*() to manage overlays. I also added two new getters to the debugger (width and height) to helps with overlay positioning.