Adds screen scale support for nvgCreateImageSnapshot().

The `nvgCreateImageSnapshot()` function is renamed from `nvgCreateImageScreenshot()`. Because this function uses OpenGL's `glReadPixels()` function to generate the snapshot picture. The values passed to `glReadPixels()` should match the scale used to generate the context's renderbuffer. To meet this requirement, a new `scale_factor` parameter is added to `nvgCreateImageSnapshot()`.

The reason why the scale is not detected automatically in the function is because custom renderbuffer may be used when rendering offscreen stuff, and which may not use the same scale as the screen's.
Updates `Widget::CollidePoint()` to accept paddings for different directions.

The ``Widget::CollidePoint()` originally accepted only one padding parameter for expanding the widget's responding area. This commit adds a variant to accept paddings for different directions.