Removed unused function in the Spec.
Pull an move validation check method out of the move method. Using this to help generate moves instead of having duplicate validation logic. Made the Square, Castle and Promotion constructor private and enumerated all the possible instances.