Added a modified version of the SFMT simd enhanced mersenne twister
algorithm.

I didn't make any modifications to the algorithm itself obviously, but I
cut out some options I didn't need (specifically altavec simd and the
ability to select a specific prime to use)

I also wrote a sort of wrapper/library on top of the actual algorithm,
The interface is fairly similar to the <letter>rand48 set of functions
from libc, there's a set of functions that don't take any arguments and
use static internal variables to hold state and a set of threadsafe
functons which require passing variables containing the state.

I also optimize things a bit by using the ability of SFMT to generate
arrays of random numbers (which is faster than doing it number by
number) and use a buffer to generate random numbers in a batch, and then
untill all of thoes are used up each call to a random function is just
an array access.