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.