refactor: Move context setup into testactular.js

Context doesn't need a separate js, it just needs a method in testacular.js to call.
chore: update .mailmap to remove duplicate contributors
chore: make npm dependencies fixed

We are gonna depend on single version and test it.
This means we need to update deps manually, but it's not gonna break people.

Based on https://groups.google.com/forum/?fromgroups=#!topic/testacular/fumqhOAEH3s
fix(adapter.requirejs): show error if no timestamp defined for a file

And do not append the timestamp at all, maybe it's being loaded from a proxy.
Merge pull request #310 from bitwiseman/fix-setup-context

refactor: Move context setup into testactular.js
chore: fix git commit-msg hook to work with git gui

Because git gui uses `GITGUI_EDITMSG` instead of `COMMIT_EDITMSG`.
test: use reporter specified in config for e2e tests

E2E test framework was overriding the reporters on the commandline.
This meant that tests e2e tests for reporter were not even using the
reporters they were supposed testing.  The test now use the specified
reporters, even if they don't verify their outputs.
feat: add "debug" button to easily open debugging window
feat(reporter.junit): add a 'skipped' tag for skipped testcases

Closes #321
Merge pull request #333 from ahaurw01/feature-add-junit-skipped

feat(reporter.junit): add a 'skipped' tag for skipped testcases
chore: release v0.5.9
chore: grunt bump push to upstream
chore: allow "Merge pull request" commit msgs
chore: update changelog links to point to testacular
chore: update contributors
feat: set urlRoot to /__testacular__/ when proxying the root
feat(adapter.requirejs): normalize paths before appending timestamp

Because paths like /base/a/../some.js do not match entries in __testacular__.files, so let's normalize these paths first.
test(adapter.requirejs): refactor to be more testable, add some tests
fix(proxy): fix crashing proxy when browser hangs connection

When the browser hangs up socket and we didn't manage to start responding
to request, it seems that resp parameter in 'proxyError' event is not filled out.

Sample resp: { domain: null,
  _events: { finish: [Function] },
  _maxListeners: 10,
  output: [],
  outputEncodings: [],
  writable: true,
  _last: false,
  chunkedEncoding: false,
  shouldKeepAlive: true,
  useChunkedEncodingByDefault: true,
  sendDate: true,
  _hasBody: true,
  _trailer: '',
  finished: false }

So, it doesn't have a .socket object and crashes the process:

ERROR [testacular]: [TypeError: Cannot read property 'destroyed' of undefined]
TypeError: Cannot read property 'destroyed' of undefined
    at i (/usr/lib/node_modules/testacular/lib/proxy.js:67:49)
    at EventEmitter.emit (events.js:126:20)
    at EventEmitter.emit (events.js:106:17)
    at ClientRequest.proxyError (/usr/lib/node_modules/testacular/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js:186:14)
    at ClientRequest.g (events.js:192:14)
    at ClientRequest.EventEmitter.emit (events.js:96:17)
    at Socket.socketCloseListener (http.js:1378:9)
    at Socket.EventEmitter.emit (events.js:126:20)
    at Socket._destroy.destroyed (net.js:358:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

So, to fix it, we use req, which is guaranteed to be filled out and .socket.destroyed is set to true in this case.
chore(deps): update socket.io to 0.9.13

Testacular 0.5.9 npm install fails during ws@0.4.0 preinstall on CentOS configuration

Socket.io 0.9.0 depends on ws 0.4.0, which appears had a bug in it.  Update to latest socket.io to fix this.

Error output is below.  

'''
 npm http GET https://registry.npmjs.org/amdefine
 
 > ws@0.4.0 preinstall /data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
 > make
 
 node-waf configure build
 make: node-waf: Command not found
 make: *** [all] Error 127
 npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/uglify-js/test/unit/compress/test'
 npm ERR! error rolling back  socket.io-client@0.9.0 { [Error: ENOTEMPTY, rmdir '/data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/uglify-js/test/unit/compress/test']
 npm ERR! error rolling back   errno: 53,
 npm ERR! error rolling back   code: 'ENOTEMPTY',
 npm ERR! error rolling back   path: '/data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/uglify-js/test/unit/compress/test' }




 npm ERR! ws@0.4.0 preinstall: `make`
 npm ERR! `sh "-c" "make"` failed with 2
 npm ERR! 
 npm ERR! Failed at the ws@0.4.0 preinstall script.
 npm ERR! This is most likely a problem with the ws package,
 npm ERR! not with npm itself.
 npm ERR! Tell the author that this fails on your system:
 npm ERR!     make
 npm ERR! You can get their info via:
 npm ERR!     npm owner ls ws
 npm ERR! There is likely additional logging output above.
 
 npm ERR! System Linux 2.6.32-279.14.1.el6.centos.plus.x86_64
 npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install"
 npm ERR! cwd /data/build/jenkins/workspace/webr-master-chrome/Webr/epubrender
 npm ERR! node -v v0.8.14
 npm ERR! npm -v 1.1.65
 npm ERR! code ELIFECYCLE
 npm http 304 https://registry.npmjs.org/amdefine
 npm ERR! Error: ENOENT, lstat '/data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/uglify-js/tmp/app.js'
 npm ERR! If you need help, you may report this log at:
 npm ERR!     <http://github.com/isaacs/npm/issues>
 npm ERR! or email it to:
 npm ERR!     <npm-@googlegroups.com>
 
 npm ERR! System Linux 2.6.32-279.14.1.el6.centos.plus.x86_64
 npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install"
 npm ERR! cwd /data/build/jenkins/workspace/webr-master-chrome/Webr/epubrender
 npm ERR! node -v v0.8.14
 npm ERR! npm -v 1.1.65
 npm ERR! path /data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/uglify-js/tmp/app.js
 npm ERR! fstream_path /data/build/jenkins/workspace/webr-master-chrome/Webr/node_modules/testacular/node_modules/socket.io/node_modules/socket.io-client/node_modules/uglify-js/tmp/app.js
 npm ERR! fstream_type File
 npm ERR! fstream_class FileWriter
 npm ERR! code ENOENT
 npm ERR! errno 34
 npm ERR! fstream_stack Writer._finish.er.fstream_finish_call (/usr/local/nodejs/node-v0.8.14-linux-x64/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26)
 npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
 npm http GET https://registry.npmjs.org/cli
 npm http 304 https://registry.npmjs.org/cli
 npm ERR! 
 npm ERR! Additional logging details can be found in:
 npm ERR!     /data/build/jenkins/workspace/webr-master-chrome/Webr/epubrender/npm-debug.log
 npm ERR! not ok code 0
 '''