Deferred object as a title

- Support for deferred object in titles. Tested with jQuery, but,
theoretically, should work with any Promises/A compatible object.
recreate deferred title after resolution
Refactoring

- Separate methods added to set title: one for regular use case,
another for promised. Used "_" name convention to avoid potential
conflicts and to show, that methods are private.
- More elegant document.title assignment, made by chaining inline if
statements
- Triggering "change:title" event with route name and a new title as an
arguments. Useful for testing.
- Do not depend on jQuery anymore, but if a object with 'promise'
method will be passed, it will throw an error if no "jQuery.Deferred"
found for now.
- Throw an error if no title found and no default title provided.
Throw new Error instead of string.
Merge pull request #7 from romanenko/deferred-support

Deferred object support.
Jslinter added

- 'Grunt-jslint' added as a dev dependency
- Source code style fixed to pass jslinter
- Default task now is a sequence of a linter, mocha test runner and
uglifier to improve code quality
Travis CI integration
Adding Travis CI build status to README
Fixing typo.
Setting npm script 'test' to run mocha
switched to mocha-phantomjs to make tests compatible with TravisCI
Merge latest optimizations from forked branch. Also fix introduced bug in index.html for cases, when tests run in the index.html page using regular browser, not PhantomJS.