Makefile: re-introduce 2 phases to avoid make strange -include's

Yet another revision of the build system. We avoid relying on the awkward
include-which-fails-but-works-finally-after-a-retry feature of gnu make.
This was working, but was quite hard to understand. Instead, we reuse
the idea of two explicit phases (as in 2007 and its stage{1,2,3}), but
in a lighter way. The main Makefile calls Makefile.build twice :
 - first for building grammar.cma (and q_constr.cmo), with a restricted
   set of .ml4 to consider (see variables BUILDGRAMMAR and ML4BASEFILES).
 - then on the true target(s) asked by the user (using the special variable
   MAKECMDGOALS).

In pratice, this should change very little to the concrete developper's life,
let me know otherwise. A few more messages of make due to the explicit
first sub-call, but no more strange "not ready yet" messages...

Btw: we should handle correctly now the parallel compilation of multiple
targets (e.g. make -jX foo bar). As reported by Pierre B, this was
triggering earlier two separate sub-calls to Makefile.build, one
for foo, the other for bar, with possibly nasty interactions in case
of parallelism.

In addition, some cleanup of Makefile.build, removal of useless :: rules,
etc etc.