Fixes the issue that widget's scale is not respected.

This commit fixes the issue that widget's scale is not respected when creating the framebuffer for caching the rendering result.

To resolve this issue, `Widget::GetMeasuredScale()` is implemented to determine the widget's current scale that related to the corresponded widget view's coordinate system. Then `Widget::BeginRenderbufferUpdates()` takes advantage of this method to create the framebuffer based on this value and the screen's scale factor. This method now also returns the actual scale for creating the framebuffer, and this value could be passed to `nvgBeginFrame()` to generate the best quality.

In addition, a new `measured_scale_` property is also added to the `Widget` class for caching the calculated result. The `set_scale()` mutator knows when to reset the property so the next time calling `GetMeasuredScale()` the value will be re-calculated.