libvirt_xml: Introduce a method get_section_string() in base

Sometimes we need to get the all element in xml, this
method will return a string of a element.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Hi @kylazhang  I know you are using it expecting None if path is not found. But this method is in libvirt_xml/base.py and it should follow the rule of it.
*  returning None if path is not found is the behavior of xml_utils.XMLTreeFile. And the all other methods in class LibvirtXMLBase is raising LibvirtXMLError if any error happen in it, rather than return a None quietly. I do not want to break the style of it. And this design is a good to us: return a True or False in low-level module and raise error in high-level module. In this particular case, xml_utils.XMLTreeFile is lower one. Same discution about virsh and libvirt_vm. The virsh is returning result of command ignoring status of it and libvirt_vm raise an Error if there is any problem. It means module in low-level should return more information to the caller as possible, on the other hand, module in high-level should judge the return-value and raise error if needed. In this class, all methods are raising Error if there is any problem. 

* From the user view point, when we use this method, we need to check the return value in any time if we returning None of it without any Error raised. But in most use cases, what we should do is check the return-value, if it is None and return a Error to make the test case fail. So I think if you want to know whether this element is gone. you can do it as following code.:
```
try:
    element_str = net_xml.get_section_string("xxx")
except xcepts.LibvirtXMLNotFoundError:
    element_str = None
```