tcm_node: Tidy up some functions, part 3
tcm_node: Tidy up some functions, part 3

Functions:
tcm_createvirtdev
tcm_establishvirtdev
get_unit_serial
show_aptpl_metadata
delete_aptpl_metadata
process_aptpl_metadata
__tcm_freevirtdev
tcm_freevirtdev
list_alua_tgptgp
list_dev_attribs
list_hbas
list_alua_lugps
snapshot_attr_set
snapshot_attr_show
tcm_set_* functions
tcm_version
show_udev_path

Create a list of modules, and loop through it to find the correct
module to call for the new virtdev.
Rely on exceptions for error handling.
Use tcm_read() and tcm_write().
Minor other cleanups.
Use shutil.rmtree over os.system.
Read in & parse entirety of the file, then write using tcm_write to
  the configfs file.
Use with statement for opening files (automatically closes p).
Use a for loop on lu_gp_members.
Use multivalue assignment.
Add a newline option to tcm_write to handle udev_path.
Removing success and failure print statements.

Signed-off-by: Andy Grover <b7d524d2f5cc5aebadb6b92b08d3ab26911cde33@redhat.com>
Signed-off-by: Nicholas A. Bellinger <978acd1567d5598152161fdf8bf3ca568f950c9b@linux-iscsi.org>

Datera/lio-utils,Datera/lio-utils,Datera/lio-utils,Datera/lio-utils