Ported testium2 to the actual testium repo

This is the somewhat/mostly complete port of testium to what is generally called the "reverse mocha" model. Since this is the product of rewriting testium from scratch while trying to track down weird PhantomJS behavior, this PR is terrible in pretty much every regard. The real commit history can be found in [the testium2 repo](https://github.com/jkrems/testium2). This "rebase" is my attempt to make it "mergeable" even though I'm not sure it actually makes sense to merge this (as opposed to leaving it a separate branch).

##### Outstanding changes

- [x] Better error message on app timeout
- [x] Better error on missing selenium/chrome driver
- [x] Makefile: add `download-selenium` a dependency of `make firefox`
- [ ] Update README

##### Example

[Minimal example app](https://github.com/jkrems/testium2-demo)

##### Highlights

* The need for custom testium runners is gone
* The interface *inside* of tests stayed the same
* Ships with mocha integration but works with other test runners in theory now
* Not coupled to coffee-script anymore (not even the repl)
* Support for [`.testiumrc`](https://www.npmjs.org/package/rc)
* Does not require selenium for headless testing
* Official support for mixins to both browser and assertions

##### Usage / Breaking Changes

* Removed automatic download of selenium
* `before(function() { this.browser = getBrowser(); })` becomes `before(injectBrowser())`
* Repl only supports coffee-script with special setting
* People used to `BROWSER=firefox` have `testium_browser=firefox` now. Added bonus: this does not conflict with people setting `BROWSER` for other purposes
I think we can delete these commented lines.