Makefile enhanced to error out with instructions if invoked without a target.

`Makefile` enhanced to install required test utility `urchin` on demand locally, via `npm install`. The shell command that locates the urchin executable was amended to also find a locally installed version, not just a global one as before.

Note that invoking just `make` (without a goal) currently (still) only runs the `sh` test (at least on my OS X 10.9.5 machine). Is that the intent?
This determines the _grandparent_ process and therefore only returns the shell when run via `npm test` or `npm run` (parent process is `npm` itself, and the grandparent is the shell that invoked `npm`).
(When run directly from an interactive shell on OSX, the  grandparent process on is your terminal (parent is `login`).)

Does it not work when you run `npm run test/fast`, for instance?

I chose this approach because it truly targets the same shell that the `npm` command was invoked from, as opposed to using `$SHELL`, which _always_ reports the user's _default_ shell - the two may or may not be the same.