iscsi: Support CHAP authentication for iscsi target and other related updates

* iscsi: Support CHAP authentication for iscsi target
    1. Implement CHAP authentication setup.
    2. Update libvirt secret_xml to use CHAP authentication.
    3. unittest update

* iscsi.export_target: change selinux mode
    1. If selinux is enforcing, when adding a logicalunit to a target during
        iscsi target epxport, you will get the error: 'tgtadm: invalid request'.
        So compromise selinux mode to avoid this problem.
    2. After this change, it's no longer need do selinux mode switch in ```setup_or_cleanup_iscsi()```

Signed-off-by: Yanbing Du <ydu@redhat.com>
if there is a volume tag under usage, but no target exists. This block will raise an error in ```secret_xml['target'] = sec_xml.target```, and skip ```secret_xml['volume'] = sec_xml.volume```. It is not expected. I suggest to use seperat try and except for them. Do you agree?