Legal Move validation cleanup and implementation

Started separating common logic out from dark/light methods.