rename logic/ to src/
refactor move legality logic

Expose the whole reasoning as a chain of boolean phrases.
implement castling