Numpy composition calculation
Composition calculations are now using Numpy. They are based on agents moving their attribute vector to the location, neighbourhood and school they move to. As other branches still use the compositions from the dictionary, the dictionary is updated and still used in the utility/satisfaction calculations. In the future however, we can make calculations directly from the Numpy arrays.