Refactor all the things
Refactor all the things

This is currently in a somewhat broken state, but a lot of things have
been refactored.

- Change library itself to be synchronous
- Use web workers to do the heavy lifting in a separate thread
- Use a Raindrop object to encapsulate variables that should not be
used globally
- Use element.classList instead of _addClass and _hasClass

ccampbell/rainbow,ccampbell/rainbow