use boost mersenne twister rng, add boost::random dependency

This is a squash of work done in april, see closed github pull
request. #160
Merge pull request #322 from cbeck88/boost_rng_squash

use boost mersenne twister rng, add boost::random dependency