The Grand QUnit Split of 2013

Order is mostly preserved, a few changed had to be made (otherwise
we had to create a core-before.js and core-after.js)

- Prototype split
  This used to be in the middle after Test and Assert. It is now
  right after QUnit is first defined.
  So instead of things becoming globals depending on whether
  they're before or after the prototype split, they now become
  globals depending on whether they use QUnit or
  QUnit.constructor.prototype (some parts of the code used this
  already). Removed the, now redundant, comment about the order
  in assert.js (issue #341)

- Test
  Was close to the top inside core, this is now in its own
  modudle after core.
  No side effects (constructor is still hoisted, prototype now
  assigned later, neither is used until the load event).

- Assert
  Was close to the top inside core, this is now in its own
  module after core and Test.
  Removed the `assert` property from the `extend(QUnit, { .. })`
  in core because that now too early (assert is undefined).
  Moved the assignment to assert.js

- Export
  Due to the reliance on position of the prototype split, the
  export for browser globals was somewhere in the middle and
  the one for CommonJS modules on the bottom. They are now both
  at the bottom.

Build process:

- Based on the build process of jQuery and jQuery UI.

Clean up:
- gitignore: Alphabetized.
- gitignore: 'dist/' was already in there apparently, removed
  redundant slash (matching jQuery).
- package.json: Match order of properties with jQuery.
- package.json: Removed 'contributors' property.
- grunt: Removed old build-git task, like jquery, we don't
  include the git hash. Instead we have 'pre' in the version and
  an exact timestamp.
- src: Simplified file headers to be more like jQuery and made
  them match between js and css.

Fixes #378.
Add build task and add 'main' property back in package.json
travis: Move grunt-cli from before_script to before_install
Merge pull request #480 from Krinkle/src-split

The Grand QUnit Split of 2013
Match css and js file header

intro.js has a slash at the end, that was missing from qunit.css
Core: Silence addEvent in non-browser env
Docs: Removed IRC channel links in CONTRIBUTING.md

GitHub doesn't support links with the irc protocol, so these were dead links.
Package: Update devDependencies to slightly newer versions
Core: Remove triggerEvent, which isn't used or documented anywhere.

Fixes #459
Core: Fix indentation and comment position in objectType()
Outro: Fix formatting and improve the comment
Test/jshint: Whitespace
Test/node/narwhal: Update require path, execute QUnit.load()

The require path changed during the module refactor, but wasn't updated here.
The QUnit.load() call is currently necessary for any tests to run. This needs
another review.
Tests: Avoid using the 'module' global to enable running tests in node
Core: Properly check for existence of document

Avoids addEvent() getting called in non-browser envs.
Export: Only export to the variable that we check for.

Checks for `window` to export in browsers, module.exports to export in node or
comparable CommonJS envs.
Grunt: Add non-browser test as grunt task. Runs existing tests in node.

Fixes #400
Test/jshint: predef => globals
grunt 0.4.1 => 0.4.2 plus updating grunt-contrib-* versions
Gruntfile: inverting ifs