Revised unit tests & fixed revealed bugs.

Restructured the unit tests to reset to a known dictionary state at the
start of each test instead of building on the result of the previous
test.
Added some tricky edge case tests with leaf removal that were exposed
by unit tests in the project I'm working on that uses this module. <3
tests.

Fixed the bugs in the remove() algorithm. We need to *not* remove the
deletion target's prefixes if they are still valid prefixes for leaves
remaining in the dictionary. We were noticing this in only a fraction
of the cases where it was true, however.

Added two new functions to the completer, probably more useful for
debugging than for anything else: leaves() and dump(). Documented the
functions in the readme.

Finally, bumped the version for a fresh npm publish.