Support for scaling widgets.

This commit adds a new `scale_` property to the `Widget` class for the corresponded widget view to render scaled widgets.

The `WidgetView::PopulateWidgetList()` method is changed significantly to adapt widget's scale factor, and `Widget::Render()` calls `nvgScale()` to render scaled widgets.

The `Widget` class' `GetX()` and `GetY()` methods are changed to consider parent's scale factor as well. Further, `float` type is returned for all of `GetX()`, `GetY()`, `GetWidth()` and `GetHeight()` methods now because nanovg mainly accepts `float` type for rendering.

A minor change is made to `Widget::Redraw()` as well that it doesn't request the corresponded widget view to redraw immediately if the widget itself is hidden.