Unit test stuff

Added some components used to set up unit testing. BoostTestTargets is from here: https://github.com/rpavlik/cmake-modules
It made setting it up a little easier, but we'll see if we keep using it or not. The test case for the random function was just to see if it worked, used it because it didn't have any other dependencies elsewhere in the code.
It's not my code, the boostTestTargets stuff is from https://github.com/rpavlik/cmake-modules .