Implemented Event and EventDispatcher with GUI controls

Removed all previous GUI classes and redesigned the system based on
Lythom's HaxePunk GUI. The previous system worked by colliding a mouse
pointer Entity with GUI controls to imitate events. The new system
implements flash.events.Event and flash.events.EventDispatcher to do it
the "right" way.

Control is the parent class to every GUI control element, such as the
Button class. Control extends Entity in order to be usable on Scenes,
and implements IEventDispatcher so that Events can be dispatched and
listened for.

ControlEvent is a custom Event with the added variable of type. Adapted
directly from Lythom. May be dropped in the future.
Added MOUSE_DOWN event to Button, added Label class

Rewrote ControlEvent class into CEvent.

Cleaned up Control class.

Added MOUSE_DOWN event to Button class, allowing for mouse clicks /
touches.

Added Label class for use as a simple text field.

Created an example in TitleScene class. Three buttons and a label for a
click counter. Clicking on first button increments counter, on second
button affects label visibility, on third button resets counter to zero.

Changed README to reflect changes introduced through commit.
Expanded Button, CEvent and Control class

**CEvent.hx**
* Added `public var senderID` - it is now possible to pass the
dispatcher's ID when dispatching custom events. The ID is stored in
`senderID` and can be read from in order to identify the event sender.
Useful when a single function is listening for events from mutliple
dispatchers.
* Added comments.

**Button.hx**
* Added `public var label` - `Button` objects have text labels as
graphics. Changing the `label` variable automatically updates the
object's visuals.
* Added `alignment` parameter to constructor - see **Control.hx**.
* Added `newSize` parameter - it is now possible to specify the font
size of `Button` object label text.
* Added `private var _textOptions` - stores label text information, such
as font size.
* Added comments.

**Control.hx**
* Added `enum abstract Alignment(String)` - defines values used in
`setRoot`.
* Added `MOUSE_DOWN` and `MOUSE UP` event types.
* Added `public var ID` - stores `Control` object (or subcalls object)
ID. See **CEvent.hx**.
* Added `public var alignment` - stores Alignment value.
* Bugfix to MOUSE_OVER event type.
* Added `public function setRoot` method - sets object root position
(alignment) depending on method parameter. See code comments.
* Added comments.