refactor(Gruntfile.coffee): Denoted variable paths

Paths (such as for dist and build) are moved to variables
in the Gruntfile (in the paths namespace), and underscores
are prefixed to their names to make it easier to see them
when developing. .gitignore has been updated to reflect this.

Also, I snuck in the removal of some files not needed for testing
into this commit.
refactor(test, test/browers.json): Move list of browsers to own file

Makes it easier to keep track of them and allows defining different
sets of browsers for different tests (i.e., unit and integration).
refactor: Modules live in separate json file
chore(Gruntfile): Indents are 2 spaces

Totally subjective, but I think it makes the Gruntfile
easier to read.
test: Tests with Karma
test: Functional test spike
feat: sauce-connect addon for travis
feat(karma-sauce.conf.coffee): Relax username and accesskey environment vars
tests: Local/Sauce + Unit/Functional Tests

To be run with:
* `grunt test:unit`
* `grunt test:unit:sauce`
  This task requires that SauceConnect be started. A script may be found
  in `./lib/sauce` to do this for you.

and

* `grunt test:func`
   This task requires that you run PhantomJS locally, first.
   `% phantomjs --webdriver=4444`
* `grunt test:func:sauce`
    No need to run sauce connct here

test(travis): Run tests on Travis CI

working!
fix(Gruntfile.coffee): Fix packaging tasks running twice for travis
fix(karma.conf): No logging to file on Travis (for now)

Need to figure out where we can log to.
test(sauce + travis): Manually run SauceConnect

Seems that Travis' was not working. Pushing this commit will
say for sure...
feat(travis_print_logs.sh): Print logs after a Travis run
fix(travis.yml): Stop travis from starting SauceConnect on its own

So, apparently, the _existence_ of a `sauce_connect` property in the
travis configuration is enough for it to think you want it to launch
Sauce Connect for you (even if its value is `false`).

Also snuck in a typo fix.
fix(sauce_connect_block.sh): Flip the executable bit
feat(tests): Logging
spike(sauce_connect_setup.sh): Try without tunnel-id
fix(karma.conf): tranports is an array, not string
refactor(fineuploader.modules.js): Shorten name
refactor(browsers.coffee): Move into './lib' -- less crowded './test'