Added Q learning algorithm + tests + refactored the maze classes to reuse them for this new algorithm