Add base framework (Gulp with Karma+PhantomJS+Jasmine)

Adds a base gulpfile to handle:

- Coffeescript to JS conversion for the plugin
- Coffeescript to JS conversion for specs
- Cleanup of converted spec files
- Test running via Karma and Phantom
- Test watching
Auto-run tests after coffee/spec changes

Update the gulpfile to properly run tests after any coffee/*.coffee file
changes or spec changes.
Automatically run tests on coffee/spec changes
Include list of tests via RequireJS

WHen running many tests you should be able to include them as a separate file
as per issue #1. This will make it easier and cleaner to run, manage and amend
tests. Plus, you'll be able to track all tests via git by checking the git
history of the tests file.
Add test for cohort segmentation

This test ensures we randomly assign a variation to the user based off of our
configuration settings. Not exhaustive; this could take many more tests to
cover.
Split the testSpec into two files

testSpec should only deal with RequireJS methods; the cohortSpec should deal
with splitting users into separate cohorts and assigning variations.
Add tests for new API methods

First iteration of public API methods for handling tests, variations, and user
settings
Add numerous API implementations to pass tests
Add `cohort()` tests

Tests check that cohort() throws errors with undefineed test names, that it
segments users into cohorts and that it returns the cohort/variation name.
Add cohort implementation according to test spec
Add basic cookie tracking of user cohorts
Remove complete @TODO comments
Add initial work for building a/b tested projects

In order to make R.JS work we've removed the 'tests' config option and
hard-coded the test list to 'tests.js' (next to config.js). This is definitely
not great; this file should be customisable as either an object or string as
per issue #1
Fuck it, let's use hard-coded dependencies

Override them using path and map config settings. Jobs a goodun.
Add example test tracking file
udpate readme with docs. crappy docs, but docs