Reviewer Alex - Use order dependencies for PHONY targets

As previously discussed, if you don't use order dependencies when using PHONY targets, make allows the builds to occur in parallel rather than serializing.  This means that building with `-j 2` or higher reports various coverage/valgrind errors since the results analysis occurs before the tests are run.

Solution is to use ordering rules (see https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html for details) which cause the rules to be ordered.

If you're happy I'll port to Ralf/Homestead/Chronos/etc.
`stage-build` is effectively an alias and thus directly depends on `build`.

The targets of `test` are direct dependencies (running `make test` should run `make vg`) their ordering dependencies are listed below (e.g. `coverage-check : | coverage` ensures that coverage is run before `coverage-check` **iff** they are both being run).