Add an .other_token class method to XO::Grid
Refactor XO::Engine, update its tests and document the code