[Bug 904123] Setup TravisCI testing

This runs all the tests, they all pass, and the only test that skip are tests that are skipped no matter where they are run. i.e. Tests that depend on Redis, ElasticSearch, or *Selenium* all run and pass. \o/

This Travis set up is designed to happen in 3 phases. Each phase is a shell script in the repository that does the steps outline below. These scripts have `set -e` at the beginning, which means that if any of the sub steps exists with non-zero exit code, the script will exit with a non-zero exit code. This will cause Travis to abort the build and mark it as failed.

1 Install Phase

- Fixes path issues so libraries are available to PIL.
- Installs compiled python dependencies from requirements/compiled.txt.
- Installs node dependencies (currently just LESS).
- Downloads and untars ElasticSearch.
- Downloads, untars, and compiles Redis.

2 Setup Phase

- Makes settings_local.py.
- Creates a MySQL database.
- Updates product details.
- Starts ES.
- Starts Redis.
- Starts XVFB, for running Selenium tests.

3 Test Phase

- Sets environment variables for headless Firefox
- Runs the tests
- Celebrates.

r?