Bring master up to speed with 0.9.x

Hot on the heels of https://github.com/graphite-project/carbon/issues/312 is this PR which re-integrates 0.9.x into master. There were a few merge conflicts, but far less than I'd feared.

It would rock if someone else could take this branch and test it out some more. My initial tests (start a few caches, write data, verify data) all pass, but are rather simplistic.
I went ahead and added the same exclusion patterns from graphite-web. We're still failing some lint tests, so I left the `--exit-zero` param in the tox.ini flake8 call. Fixing those and forcing things to lint nicely should be a top priority after this merges.