Cleanup option type code and add more types

Signed-off-by: Hao Liu <hliu@redhat.com>