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?
You can already do `make sh`, `make bash`, .... - thanks to `$(SHELLS):` expanding to `sh bash dash ksh zsh:` However, the way it is currently set up it will only run the _fast_ tests.

`make test sh` wouldn't work, because `sh` would be considered a separate target.

However, it would be fairly easy to generate targets named `test-sh`, `test-bash`, ...

```makefile
SHELLS := sh bash dash ksh zsh
SHELL_TARGETS := $(addprefix test-,$(SHELLS))
# ...
.PHONY: $(SHELL_TARGETS)
$(SHELL_TARGETS):
	@printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@"
	@echo $(subst test-,,$@) $(URCHIN) -f test/$(TEST_SUITE)
```