Dynamically generate brushes instead of using static images

for greater scalability and more regularity in the transitions
between zoom levels
Make the transition from pixels to brushes less jarring.

Pixels are drawn half a pixel too high and too far to the left
because otherwise there is banding at the tile boundary,
since fractional pixels are always down and to the right,
while brushes naturally dangle down and to the right from their
nominal top left because they are round, not square.

Smooth the transition by making brush 2 further up and left
than it would otherwise be.
Adjust brush brightness to compensate for rounding errors.

Offset brush 2 a little bit more.