Mind-bending refactor of infinite beauty

... it's more of a rewrite, really.

36 commits so I thought I should squash it into a single one. Here's the
gist of what happened:

- updated all dependencies
- moved all code that deals with modifying the text into a separate
  folder of single-purpose modules (see the `formatters` folder)
- moved all code that outputs stuff to the output folder into a series
  of single-purpose modules (see the `outputters` folder)
- generally cleaned up, streamlined and made everything loads more
  modular
- streamlined CLI
- switched to using `ectoplasm` for handling PhantomJS scripts
- made sure everything is true async to avoid unleashing Zalgo
- bumped to version 0.4.0