Refactoring :
1) enriched Move class, now it's really value object representing a move
 2) position returns set of allowed moves
 3) Unexpected side effect : Legal Player makes now VERY PREDICTABLE moves (due to the predictable HashSet algorithm) in contrary to previous Set<String[]> which was probably based on memory addresses

 It will be a motivation to make LegalPlayer more creative on its own level (not depending on 'unstable' Position's set result
Refactor comment
Reusing power of Move class
Extracted methods towards basics of gaming strategy
To make sure our player really can castle (and show it during manual testing) I've created a version of LegalPlayer who is castling-addicted: it prefers not to move king&rooks except it's castling possibility

Manual testing shows #76 can be closed.

This commit is a start of era of EVALUATING different moves and choosing some of them as the best one depending on a desired strategy.
Current 'castling-addicted' player is 2'nd strategy I use after the simplest first one (get any legal move)