lib/application: improve URL building algo

When running on Unix and no hostname is specified, use `0.0.0.0`
as the hostname instead of `localhost`.

When running on Windows and the hostname is either not specified or
it is `0.0.0.0` or `::`, use `localhost` in the URL. The reason is
that Windows cannot open URLs using `0.0.0.0` as a hostname.
Merge pull request #659 from strongloop/fix/url-generated-on-windows

lib/application: improve URL building algo
Fix JSdoc for registerResolver
Support per-model and per-handler remoting options

Allow the developer to pass custom `remoting` options via Model
settings, e.g.

    PersistedModel.extend(
      'MyModel',
      { name: String },
      {
        remoting: { normalizeHttpPath: true }
      });

Also add `options` arg to `app.handler`, this object is passed directly
to strong-remoting handler.
Merge pull request #433 from fabien:feature/normalize-http-path

Support normalizeHttpPath

Close #433
Force principalId to be a string.

Added a defensive check for undefined to avoid problems
when converting to a string.
Adjust id handling to deal with 0 and null
add missing semicolons
allow comma first style and increase line length
split jshint task for test & lib
use singlequotes
add laxbreak option
Use === to compare with 0
Merge pull request #658 from rhalff:master

Fix basic jshint errors

Close #658
Make sure GET /:id/exists returns 200 {exists: true|false}
https://github.com/strongloop/loopback/issues/679
User: fix `confirm` permissions

Enable authentication for all User unit-tests to check that the ACLs are
correctly configured.

Fix the rule for `confirm` - the correct permission is `ALLOW`, not
`ACL.ALLOW`.
Merge pull request #689 from strongloop/fix/user-acls

User: fix `confirm` permissions
2.6.0
Merge branch 'release/2.6.0' into production
Merge tag 'v2.6.0'

2.6.0