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?
I see your point re in-progess changes (`npm-debug.log` is a candidate for `.gitignore`).

I've added `-a` to create annotated tags - it's what `man git-tag` says should be used for releases. They're lightweight tags + metadata, notably who created the tag and when. A message must be recorded as well, so I'm simply defaulting that to the version number.