More dependency information for top-level makefile

As discussed at
<https://github.com/caltry/mlton/commit/c2adc0ef339ab7df982b77f1457b90a4c96e3660>,
the following changes have been made to the dependency graph:

- A new PHONY target, `working-compiler`, builds a working compiler, but
  no tools.  This was created to differentiate it from `script`, which
  just makes sure that `./build/bin/mlton` exists.
- Expanded dependencies for the `constants`, `tools` and `libraries`
  targets, which now require that the newly-built MLton (rather than the
  system MLton) is used to build those targets.