Testable install script

* wraps main code into a function
* EnvVar-based install start
* Clean environment after install
Merge pull request #556 from xcambar/install_function_for_testing

Add install_script test suite; wrap installation in a function, for testing.
Cleaning up install_script tests.
Makefile enhanced to install required test utility 'urchin' on demand, locally, via `npm install`. The urchin install test was amended to also find a locally installed version, not just a global one as before.
Makefile enhanced to error out with instructions if invoked without a target.
Changed `replace` npm package version spec. from ^ to ~.
`make list` now lists defined targets one line at a time.
'test-<shell>' targets introduced to makefile, which now defaults to running the fast, slow, and installation test suites; 'test' target now does the same for ALL shells; package.json now invokes make instead of urchin directly; make release made much more robust.
Fix to previous commit to ensure that NVM_DIR isn't unset when run by Travis.
Rebased,`make release` now ignores untracked files
Switched from lightweight to annotated tags for releases.
rebased; robustness of `make release` improved; whitespace for alignment removed from package.json

npm script "test/install_script" added