Added move generation and functions for converting board representations (all need testing!)