Update product command and subcommands

This puts the list command under the product command. Options are now
loaded via apipie_options. Also, the product class is refactored to
extend existing foreman classes for the sake of reuse and consistency.