Add nvm_validate_implicit_alias
Adding nvm_print_implicit_alias
Adding nvm_print_implicit_alias error tests.
Adding nvm_print_implicit_alias success tests
Make `nvm alias` list implicit "stable" and "unstable" aliases when they're not already aliases.
Add support for `nvm ls stable` and `nvm ls unstable`
Support `nvm ls-remote stable` and `nvm ls-remote unstable`
Merge pull request #537 from ljharb/add_stable_unstable_aliases

Add stable & unstable aliases.

Fixes #336.

With these changes, the following `nvm` commands will now support "stable" and "unstable" default/implicit aliases:
 - `ls`/`list`
 - `use`
 - `alias`
 - `run`
 - `exec`
 - `uninstall`
 - `copy-packages`

For these, "stable" will be the latest even minor version that's locally installed; "unstable" will be the latest odd minor version that's locally installed.

In addition, `nvm ls-remote` and `nvm install` will accept the same implicit aliases, however, these will actually call nodejs.org and output the latest even and odd minor versions available for installation.

`nvm alias stable foo` and `nvm alias unstable foo` will *override* the default/implicit aliases. `nvm alias` output will reflect this by showing "(default)" when the alias is not user-defined.