READY: ploy list enhancement

To make diffing variants easier, `Ploy::Command::List#run` returns a JSON hash in addition to printing to terminal. A JSON hash is returned regardless of the `-j` option flag, but the hash will be empty if `-j` is not set.

Wrote some tests around it too, since we didn't have a `command_list_spec` file.
Emacs must have just this for me. I'll change it back.