Make coalesce scalable

This commit comes from work we did to make it possible to coalesce 50k
events/second, so that riemann can be used to compute real-time
aggregations of stats on large clusters.
Handle spaces in graphite metric names

Spaces in metric names get replaced by underscore
Ignore and log malformed messages
Logging: setting :console false works again.

Closes #336
Switch changed to rely on an atom instead of a ref

This should be marginally faster and avoid transaction retries
should they happen. I'm not familiar with criterium or other
libraries to validate the hypothesis that it is faster, so this
is just conjecture.
Merge pull request #337 from pyr/feature-atomize-changed

Switch changed to rely on an atom instead of a ref
Merge pull request #333 from twosigma/scalable-coalesce

Experimental support for more scalable coalesce
atomize part-time-fast-interval
atomize sum-over-time
atomize mean-over-time
atomize register and append
update core test for new append and register

update core test for new append and register
update streams test for append and register
Merge pull request #339 from pyr/feature-atomization

Switch more streams from refs to atoms
Merge pull request #335 from sblask/fix-for-graphite-messages-containing-spaces

Handle spaces in graphite metric names
streams/rollup: test single single event per interval
Graphite server: improve error handling.

Also improvements to tests, performance, modularity, removed dependency
on core.match, etc. Possibly fixes #338?
Uncomment integration test