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.
Yay, tests! :+1: