Moves some virtual methods to private section.

Some virtual methods were defined in public section but should never called from outside. Now these methods are moved to the private section.
Updates Widget class to not handle events by default.

This orginal implementation accepts any event as long as it occurs inside widget's bounding box. However, this is undesired because most widgets are created for only display purpose and don't really care about events.
Implements the Label widget.

This commit implmenets a new Label widget for displaying text. The implmenetation basically mimics the design pattern of UILabel from iOS SDK.

In order to support for adjusting the label's height automatically to fit text. A new Widget::WidgetWillRender() virtual method is added to give Widget subclasses a chance to prepare the rendering environment. This method will get called in WidgetView::Render() but before all of other Render()-like methods.

A new WidgetView::ContextDidCreate() virtual method is also added as well to give WidgetView subclasses a chance to do some initialization right after the context has been created. Subclasses can implement this method to register fonts that will be used in Label.