Add the proper combination of testing components

* Add pretender.js, it guarantees the possibility to write some
  test for XMLHttpRequest
  * Add required package:
    * fake_xml_http_request
    * route_recognizer
* Add new test case, it contains basic tests for XMLHttpRequest
* Add compressor(browserified, uglified) gulp task for source and test files
* Modify algernon-trap, moved send function from app.js
* Add karma.conf.js, for testing it is necessary, it contains
  the condtion of karma browser
* Add new reporter to karma (the previous one was
  not too helpfull), called karma-mocha-reporter
  * Update package.json, it has already contained the
    new reporter
* Add minified files to .gitignore
Add linting tool to gulp enviroment

Plugged in esLint
Configure esLint by following partly Idiomatic.js
Modify source code according to the lint configuration
Cleanup linting

- Remove unnecessary .jshintrc.
- Add gulpfile.js to linted files.
- Fix lint errors in checked *.js.
Add jsdoc

- Fix/change external dependencies to compatibles (~>)
Add 'dist' task

'dist' task will create version suffixed, minified, uglified, amdified
JS components that can be sourced directly from anywhere.
Refactor code

- Remove unnecessary (unused) AMD and global module patterns.
- Splits functionality into several files.
- Improve example and test.
Add autoSendOnUnload feature

- Add tracker examples.
- Wrap example apps (app.js and tracker.js) with closures.
- Fix lint errors.