Add a ton of EPD / Perft test cases [ci skip]

Using a custom EPD opcode to define perft suites, so that I can just get
a single runner for all of these. Maybe halfmove/fullmove will matter
and I need to come back and amend them. I dunno.

These suites have been gathered by digging through the chess programming
wiki; the source is annotated as a comment at the top of every file.
Start reducing chess:: to pub vs priv interfaces

Still working out how crates / modules actually expose things. I think I
probably want to extract various modules that expose a ton of
constants (eg, `chess::directions::*`, `chess::piece_names::*`
etc). Without that, it looks like I'm stuck importing all of
`square::*`, `piece::*` directly into `chess` and making it public.