Support of handling basic events and touch control events.

This commit adds the ability to handle four basic events (down, up, move, and cancel) for all of iOS, Mac, and Android platforms. The design of handling events takes advantage of all these platforms as well.

Like the pointInside:withEvent: method from iOS' UIView class, the WidgetView class now has a new ShouldHandleEvent() method that decides whether the widget view should respond to the following events.

Like the onTouchEvent() method from Android, all events are dispatched to a single method for processing. The method in moui is named HandleEvent() in both WidgetView and Widget classes.

A new Control class is also implemented to handle control events. This commit only implements some touch events but other control events can be added later. The Control class mimics the UIControl class from iOS SDK and is designed as a base class for all control widgets.