Improved run time, created base value testing

Run time:
 - The run time was slow due to an inefficient search method for pathfinding. This was replaced with a breadth first search
 - Changed the main action base weights to be varibles that can be specified at run time

Base Value testing:
 - The base values were my best guess at what the base weight should be for each action. This was improved by testing
 - Created a testing script that uses simulated annealing to determine the best set of base values
  * See base_value_testing/baseValues.txt for the revision list based on the results.
  * I started with an incriment of +- 0.25 for each value, then changed it to 0.01 after a couple of rounds of simulated annealing
  * The values are played through 100 games to determine the win rate
  * For efficiency the win rate is stored after the run is complete but can only be reused 5 times before it is tested again to verify it wasn't a fluke
  * Each instance of the forbidden island game is run in parallel
  * Sometimes the game hangs for an unknown reason so in that case there is a 30 second timeout which restarts the run

  ** As of this commit there is a simulated annealing run in progress so the base values may change. It's running 10k iterations and has done 3k in ~2 hours