Tons of changes:

1. Fixed the Moran process
2. Rewrote the vary method to actually make sense in terms of its return types, began paving way for persistence. Recursive structure to hold N-Dimensional data
3. Parallelized everything using the joblib library. Seeing about 2x faster results on a  4 core machine in the simulate_many class. By default simulate_many parallelizes its calls to simulate.
4. Parallelized variations on parameters. Our general goal is to parallelize as course of a calculation as possible, thus if we are parallelizing across different parameters, we disable parallelization on the simulate_many calls. Furthermore, we only parallelize the outer loop of the parameter variation recursion, regardless of how many independent parameters there are.
5. Added a requirements.txt file