dxr-build: allow specifying tree build order

Add support for an optional |order| parameter to tree configs; it should be
an integer, with smaller values being built first.  Trees with unspecified
order will be built after those with specified order, in sorted by tree
name.

This is necessary because I'm running this against a tree that requires the objdir of a second tree to actually build.  (In this case, I need to build the bulk of Mozilla before building Komodo; similar things happened with Songbird, where a XULRunner + TagLib + gstreamer + etc. build was required before building Songbird itself.)  See also, say, GCC needing binutils.  Basically, anything that needs to build some imported code in a separate build step separate from the main build system (mostly because the imported code takes a long time to build and does not change often).

This at least introduces a defined build order to things - before it was just building things in whatever order dict().keys() was returning, which is unspecified.