Support for always using integer for widget's dimensions.

This commit implements the `uses_integer_for_dimensions_` property for the `Widget` class. If this value is set to `true`, both the `Widget::GetWidth()` and `Widget::GetHeight()` methods will return the smallest integer value not less than configured value. This may fix some weird situation where the rendering result is not as expected.

This commit also updates the `Widget::SetHidden()` and `Widget::set_scale()` methods to call the `Redraw()` method directly from the attached widget view, because there is no need to reset the pre-rendered framebuffer.
Implements the GridLayout widget.

This commit implements a new `GridLayout` class for arranging child widgets in a two-dimensional grid.
Support for moving a child widget on top of its siblings.

This commit implements the `Widget:: BringChildToFront()` method for moving the specified child widget so it appears on top of its siblings.