Factor as much logic as possible into SketchmapMonoid1

This commit factors the implementation into the Monoid. This allows only
the Monoid to be concerned with the sketchmap parameters. This also
follows the create-in-the-Monoid pattern as in HyperLogLog.
Factor some logic out of SketchMap using logic from SketchMap1 instead.

This is an API compatible change.

Shortcomings:
  * I was unable to factor functionality out of SketchMapParams due to
    only having the hashes and not the hash seed.
  * I was also unable to factor ++ and + because I don't have access to
    the implicit serialization, which I need to create a SketchMapMonoid
Don't iterate through everything in unit monoid
Merge pull request #253 from twitter/fasterUnitSumoption

Don't iterate through everything in unit monoid
Merge pull request #251 from cheecheeo/sketchmap_ala_hll

Factor as much logic as possible into SketchmapMonoid1
Use semigroup in StateWithError
Merge pull request #255 from twitter/fix-state-with-error

Use semigroup in StateWithError
Make SketchMap1 into SketchMap
Update references to be to SketchMap not SketchMap1
Merge pull request #256 from twitter/jco/rename_sketchmap

Make SketchMap1 the only SketchMap implementation
Bump versions
Merge branch 'release/0.4.0' into develop
Implement StreamSummary data structure for finding frequent/top-k items
Some changes to StreamSummary as suggested by Oscar in pullreq comments
Rename StreamSummary to less generic SpaceSaver
Add Predecessible and methods to Interval
Simplify the lower/upper testing
Make prev use Integral
Address review comments
Add toLeftClosedRightOpen