better support for building against libpng 1.6.x  with pkg-config
moar newlines
Merge pull request #1 from springmeyer/libpng-build-fix

better support for building against libpng 1.6.x  with pkg-config
Require libpng 1.6 in Makefile too. Otherwise this gets 1.2.
Add an option to draw on a white background instead of black.
Add an option to specify (in hex) what the neutral color is.
Do proper clipping when dumping instead of just bounding box checks.

(The actual coordinates of the polyline won't be clipped.  The clipping
is just to check whether it should be dumped with this tile at all.)

It doesn't actually make a huge difference, but it does exclude some
gigantic vectors at low-numbered zoom levels that have coordinates on
both sides of the tile in question but don't actually intersect it.
Use floor() instead of truncation to make integer pixel coordinates.

If truncation rounds negative numbers toward 0, it can make the top
pixel of a tile brighter than it should be.
Fix the partial circles at tile boundaries when overzoomed.

Look up the dots in the tile above and to the left of the one
being drawn so that it can include the dots that should overlap
the top and left edges. Brushes now draw from their top left
so it shouldn't be possible for them to underhang.
Need to check for overlap diagonally too to really get them all.
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.
Make sure that the dots of each zoom are a superset of the previous zoom.

This is the intent of always zooming by a power of 2, so that once a dot
is visible, it stays visible as you zoom in more instead of flickering
in and out of view, but the code wasn't actually aligning the starting
point to the step size when drawing.
Brushes can now have arbitrary area, not just powers of 2.
Add noise in the bits below the bottom of the file resolution

so that it will not look so gridded when drawing.

(The noise is taken from the other coordinate, so if two dots
were encoded at exactly the same location, they will still draw
right on top of each other.)
Fix the calculation of the color of partially transparent pixels.

Their color needs to be more intense than fully opaque pixels
so that they come out with the right brightness after multiplying
by the alpha channel.
Lower color desaturation cap so it doesn't fade to black on white.
Choose to look at adjacent tiles based on brush use, not zoom level
Add an option to "enumerate" to output coordinates, not tile numbers.

This is just like render -d, except that the output is in geographic
order instead of doing each zoom level and number of points separately.