Fix UISettingsImpl/UIPenSettingsImpl::removeObserver() functions
Add pixel-perfect drawing mode for freehand tools (issue 315)

* Added new app::tools::IntertwineAsPixelPerfect intertwiner
* Added app::tools::FreehandAlgorithm enum
* Added app::tools::WellKnownIntertwiners constants
Update copyright year in config.h and README.md
ContextBar: Move m_freehandBox to the last position to improve context bar for selection tools
Change selection behavior: left-click replace the selection

With this patch we replace the "unique/odd" behavior of Aseprite where
you add selection regions with left-click and remove with right-click.
Now by default you replace the selection with left-click (as in regular
gfx programs). Also you can change the selection tool behavior with
buttons/icons at the context bar (to select between replace/add/subtract).
Add setup_mini_font
Remove some labels from ContextBar, modify tooltips look, and use mini font
Minor changes in skin parts to improve context bar buttons
Fix issue 298: Crash on quit with multiple viewports open
Implemented issue 260:	Scroll-bars for sprite editor
Fix scroll bar thumb size calculation
Don't use override modifier outside the class definition
Added "Grab Alpha" option to eye dropper (issue 134)
Fix FileList navigation with keyboard (enter key focus the FileList again)
Change infinite scroll implementation

Remove necessity of jmouse_x(1) and jmouse_y(1) calls.

- Renamed jmouse_control_infinite_scroll() -> ui::control_infinite_scroll()
- Renamed jmouse_set_position() -> ui::set_mouse_position()
- Added ui::get_delta_outside_box()
Fix const-correctness for ColorPicker::pickColor() member function
Don't show grid and mask in mini editor
Don't eat all keystrokes on ui::TextBox::onProcessMessage()
Add app::StartView (work-in-progress)
Fix bug where ContextBar was completely hidden