add public app for adding agent channel

1. add set_agent_channel for adding agent channel in domain xml
2. add options for undefine because of --snapshots-metadata
add public app for adding options into dict

add get_option_dict for dealing with command options and put them
into dict
add virsh function for snapshot-create-as

1. add virsh function for snapshot-create-as
2. add options for undefine
3. add options for remove_domain
4. add options for snapshot_list, modify match patten because snapshot name can be some symbols besides numbers and words
add configuration for virsh snapshot-create-as testing
add test for virsh snapshot-create-as

add test for testing snapshot-create-as all options also include the negtive test.