brushlib: improve tilt ascension stepping

Perform tilt ascension interpolation steps in the direction of the
smallest angular difference between input event tilts. This removes some
ugly 360 degree twirls when passing from -180 to 180 or vv. This angle
can be hit much more easily with the recent canvas rotation compensation
code, so best we fix it.

https://gna.org/bugs/?19988

Tested with faked tilt inputs only. Testing needed.
color picker popup: use a pointer grab again

Fixes (on my system, tested in Xfce4 and Unity) two problems with the
color picker popup window:

- Picker popup doesn't disappear when using a modifier+pointer button to
  activate it

- Picker popup doesn't update continuously when the R key (or any other) is
  used to activate it.

https://gna.org/bugs/?19710

Back and forth on using a pointer grab vs. a gtk grab, but this now
seems the better approach. Fingers crossed.
brushlib: fix last ascension step; comments

Fix omission: do the last ascension step the same way as all the others.

Comment tweaks: remove incorrect statement; move description of time
interpolation closer to the relevant line.
fix inputtestwindow

Looks like we need to listen on two different widgets now to get both
motion and keyboard events. And we get proximity events for both of
them. A bit confusing. Report which widget reported the event.
fix expose events one-off errors

I think it is correct now, even if proper anti-aliasing is added.
Still, I have left the 1 pixel safety margin.
brush list: make double click open brush editor

I'm finding myself double-clicking brushes in the brushlist more and
more in an attempt to change the brush settings. Let's make that happen.
brush list: fix drag&drop

reported via IRC
i18n: fix brushlib translations

Brushlib translations were not displayed.
Works only when installed for now, but at least it works.
i18n: make brushlib translations work without installing
i18n: make frame window title translatable
brush list: revert double-click action

After testing it properly with a stylus: it didn't quite have the "feel"
I wanted. Felt right with the mouse, but with the stylus I found I was
doing accidental drags after double-clicks, and accidental double-clicks
during selection. Perhaps tablets "bounce" too much to make double-click
activation a good idea when other stuff is going on.

I think it should be possible to edit properties from the brush list,
but this doesn't look like the right way to do it.
brushlib: Split out more code in operation queue that manipulates tile map

Also marks the know issues the code has. Will be fixed shortly.
brushlib: Fix resizing of operation queue causing line gaps

The previous code for copying the values in a tile map to a bigger
map during resize did not take into account that a tile
would be stored in a different position in the bigger map.
Thus when processing after a op queue resize, the dirty tile list
would point to wrong, empty queues. This caused gaps in drawn lines
the first time they exceeded the op queue size.

Sorry for big commit. Also makes all functions that have
to do with the tile map operate on a TileMap instead of OperationQueue.
brushlib: Return changed bounding box though mypaint_surface_end_atomic()

This means there is a standard way of notified that happen to a surface
in the MyPaintSurface interface. MyPaintTiledSurface uses this so that
subclasses of it does not need to handle it, simplifying the code.
brushlib: Remove multiple definitions of TILE_SIZE

Makes sure that these cannot drift out of sync with eachother.
Also use a variable on MyPaintTiledSurface instead of
a define where a preprocessor macro is not strictly neccesary.
brushlib: Namespace the TILE_SIZE define as MYPAINT_TILE_SIZE

And put it in mypaint-config.h so that external consumers can
use it.
brushlib: Allow MYPAINT_TILE_SIZE to be set by buildsystem

Allows external consumers to potentially use another tile size
then the default 64x64.
i18n: Korean translation
i18n: fix untranslatable string
Preliminary update of Russian translation