Update the makefile to build all rust libraries.

Due to the fact that libextra is being split apart now, I have included
the list of crates from in the Rust Makefile itself, and use that to
specify what needs to be built.  This should also let the crates be
built in the correct order as the Rust Makefile specifies the
dependencies for each crate.

I have tried to write this in such a way as to let the jobs be run in
parallel - hopefully if you run `make -j 4` it can process multiple
crates at once if they are independent of each other.