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.
I didn't know this syntax existed. Kinda neat, but I'd find it easier to read if it were explicit. return o.to_json or whatever.