brushlib: Make draw_dab an operation that can be stored
brushlib: Make draw_dab an operation that can be stored

Also separate out processing of a single tile to its own function.
This makes the dependencies of the tile processing clear, as
well as the interdependencies between processing of different tiles.

b3sigma/libmypaint,achadwick/libmypaint,achadwick/libmypaint,b3sigma/libmypaint,b3sigma/libmypaint,achadwick/libmypaint,achadwick/libmypaint