Order Makefile deps "properly" and allow parallelism

Expressing order dependencies between PHONY targets is
unnatural in GNU Make.  This patch introduces a hack in the
form of the SOFT_DEP_RULE macro which generates dependencies
between phony targets only if the phony targets would be
built anyway.

As a side effect, messing up the order of targets when
invoking 'make' is accepted:

    $ make test-abs build configure -n
    cabal configure --enable-tests
    cabal build
    cp lib/Prelude.ktn ./dist/build/kitten/Prelude.ktn
    cp lib/Prelude_*.ktn ./dist/build/kitten
    ./dist/build/kitten/kitten --no-implicit-prelude
    ./dist/build/kitten/Prelude.ktn
    ./test/run.sh $PWD/dist/build/Kitten/kitten "abs"