* add support for downloading puzzle descriptions in `cargo download`
* add `cargo read` command to read puzzles in terminal
* extract `aoc_cli` module
* use `aoc-cli`'s new overwrite option to eliminate temp files
this allows to print _not solved_ for solution parts that haven't been solved yet.
adjust `solve` macro to handle one solution part rather than both.
this allows for easier debugging of real input.