update qtree to compress more aggressively

The current qtree compress implementation is too conservative. In the current implementation new nodes with small counts can exist as long as the neighboring subtree has a big enough count.

I've updated the implementation to be more aligned with the algorithm outlined here: http://www.cs.virginia.edu/~son/cs851/papers/ucsb.sensys04.pdf

I've checked my solution by playing around in `./sbt algebird-core/console` and via `./sbt algebird-test/test`

This is also my first pull request for algebird, please let me know if I should have taken some extra steps.
+1 to this. match is elegant, but this code is in the hot path in many cases.