Add --additions and --deletions to analyze LOC changes

Yet another feature in the category of "well, it's interesting to know",
despite the obvious issues with looking at lines of code.

This brought to attention just how badly the `print_(\w+_)report`
functions need refactoring, which will happen shortly.
A little bit of DRYing.
Better handle non-numeric bucketSize

Having a Python error when you enter inappropriate values isn't terribly
nice, so let's do a little work for the user.
Fix sometimes crash with --additions and --deletions

`range()` doesn't include it's `stop` value, but we've been acting as if
it did.  This has been ok most of the time, since we bucket values, but
it causes problems if our maximum value is at the end of a bucket and
resides in that bucket by itself.

There are some other places we do a similar sort of `range()`ing, but I
think those all operate on `DefaultDict`s, which means it's ok: it'll
still be the last value added, so the ordering is still correct, and
it'll just default to the default (of zero) when we `+= 1`.