make-based build tasks

Grunt is a useful tool. But apart from being intrusively verbose, it feels
unreasonably slow sometimes. And I also feel like it doesn’t let me help it
hout with basic optimisations like:

- only jshint changed files if any; jshint alone takes ~200ms to start, and if
you have more than one fileset, then it starts to feel like a waste of time to
start it when nothing changed.  - only rebuild HTML when relevant components
changed - only lint HTML code when there are relevant changes - etc.

This is even more painful if you have basic knowledge about make, how
intelligently it operates, how fast it is, and how it all makes perfect sense.

At times it seems like the basic tasks that I’m using day-to-day should not be
that hard to implement with Makefiles. Other times I’m afraid that it’d require
too much effort and would end up being a burden to invent and maintain my own
wheel.

On the other hand, make was created specificaly for this kind of tasks, so it
should be pretty stright forward. Anyway, let’s see how it goes.

So far I have implemented all tasks that I had with Grunt, and I have to say
that I feel pretty good about the code: and it is getting better as I fiddle
more with it and learn new gmake tricks. Performance has improved significantly
and Grunt’s noise about doing nothing also went away. That’s a relief.

There is the watch task wich is only a skeleton now, but I will let it be
until I’m clear about how I want to use it. Maybe when I start coding CSS.
We’ll see.