Added number_dialer, fixes #67, #65, #46 and #47 and more

In summary
- `number_dialer` - woohooo! I've added a couple demos of it to the all_widgets example that also show off the new `Framing` param a little. Still needs some small tweaking but it's looking to be in good shape.
- `UIContext::new()` now takes a font as an argument so a user can specify a font on the top level i.e. `UIContext::new("Arial.ttf")`
- Change `IsLabel` to `Labeling` (as per naming convention)
- Slider (and all widgets) now capture the cursor properly - if the mouse is still pressed when moving the cursor off the widget the widget's state will remain as `Clicked` (can try this out in example).
- Changed `WidgetState` to `State` for use as `widget::State` instead.
- Added a `Color` method `plain.contrast()` which will return either black or white (whichever contrasts the `Color`s total luminance the most). This makes it easier to get font `Color`s that will automatically work with any given background color.
- many other small tweaks and fixes