Made addTarget and removeTarget chainable.
Updated HISTORY.md.
Resolves node dependency issues
Typo correction
Typo correction
Enforce a router's `root` as its mount point

This enforces routers with a specified `root` to only consider paths as
matching its route handles if that path is semantically within the
router's `root` path. For example:

    router.set('root', '/app/');

    router.hasRoute('/app/');    // => true
    router.hasRoute('/app/foo'); // => true
    router.hasRoute('/bar/');    // => false

This change fixes some issues with paths being erroneously considered
matching even when they were not semantically within the router's `root`
path.

The `getPath()` method now returns the _full_ current path, whereas
before it returned the current path relative to the router's `root`.

These changes will break backwards compatibility with some apps, but
fix some fundamental issues with how Y.Router handled `root` paths.

Fixes #1083
Update user guide and add HISTORY entry for Router mount point changes
Update hash-based routing test to check for the full path in `req.path`
Fix syntax highlighting in App's HISTORY.md
Add note about `req.path` being the full path in App's HISTORY.md
Flip arguments of Router#_pathHasRoot() method and fix unit test
Merge branch 'router-root' into dev-3.x
Build Router
Merge branch 'node-depen-fix' into dev-master
Build Node
Merge branch 'dev-master' into dev-3.x
Added unit test to assert that addTarget and removeTarget are chainable.
Ensure req.params is correctly populated for Routers with a non-default root path (i.e. more than just "/" e.g. "/foo/").
Compute the `routePath` from the full `path` once per dispatch in Router
Build Router