add wrapper for boost::mt19937 mersenne twister rng

The class mt_rng is a wrapper which provides a similar interface to
this boost rng class as we had to the linear congruential rng
implemented in simple_rng. This commit creates mt_rng.hpp and
mt_rng.cpp and adds them to SConscript and CMakeLists.

This commit also adds the boost::random depenency to SConstruct.
I mark the required version at 1.43.0, since from the boost
changelog, that's the last time that the random library was updated,
and inclued the change:

"Put the implementation of random_device in a compiled lib, and
added Windows support."

I imagine we might want to use that in a revision of this.

I also am forced to add an implementation of the "discard" rng
function, which seems be available on my machine but not in the
travis build environment.
switch over gamestatus and sync code to use mt_rng

In places where previously simple_rng was being used.
This may require fixup, as we are casting uint32's from
the rng to ints.
add boost rng to server for seeding mp games

TODO: It looks like this will still cast all uint32's from the rng
to ints before sending them to the clients, unclear if that causes
problems.