Refactor Cli::Options

Simplifies Cli::Options implementation by unifying the interface of the different Commands.

This change may conflict with #276 since that PR also moves Cli::Options to a different file.