Updates Tournament, so that games can be stored for multiple engines (as a dictionary). All engines pass a name to the Engine constructor.
Add logging, deep copy of Grid objects and partial function for multithreading
Grids are initialized for every run, and not when initializing an Engine. Fixes #9