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>
In general, we are using a xml class like this:
```
auth_xml = Auth()
auth_xml.auth_user="xxx"
auth_xml.secret_type="xxx"
...
```
We do not assume a xml class have to need a property to init itself. So do not put auth_user in ```__init__()``` and the default xml file. Just define it as below:
```
def __init__(self, virsh_instance=base.base.virsh):
    ... ...
    self.xml = "<auth/>"
```