virt: Enhance utils_selinux

* Made MLS range patern matching optional in get_context_from_str(context)
  since this information isn't always provided/available.
* Added function to extract only the context type from a context string
  since many selinux commands only work with a type anyway
* Added get/set/del functions to manipulate default file contexts on system
* Added search function to look up a type based on a path
* Added unittests for new functions
* Added special exception if semanage tool doesn't exist
* Added functions and unittests for getting/verifying/setting
  default contexts on specified path.
* Added function to apply default contexts onto file/dir

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: get_started/bootstrap SELinux setup

Default testing for libvirt and lvsb should be done with SELinux
enabled + enforcing.  However, this expects certain file/dirrectory
contexts to be setup to standardized values.  Unless the default
contexts are also set in the local SELinux policy, changing
those directories in any way will leave them with incorrect
contexts again.  Additionally, we want to be as user-friendly
as possible, checking/setting/warning as appropriate from
get_started.

* If SELinux is disabled or not available, issue warning it
  should be enabled when possible.

* If tooling is not available, print an informative message
  on how the default contexts can be set up.

* If tooling is available, and there are no prior default
  contexts, establish them, otherwise leave the existing ones alone.

* If on-disk contexts don't match expected standardized
  values, inform the user that relabeling is needed.

* Auto-fixed a bunch of pep8 reported problems

Signed-off-by: Chris Evich <cevich@redhat.com>

squash! virt: get_started/bootstrap SELinux setup
virt: Improve utils_selinux comments/docstrings

Signed-off-by: Chris Evich <cevich@redhat.com>