C & PY API: Clean-up error number constants

See email from Gris subject: "Error number review"

Signed-off-by: Tony Asleson <tasleson@redhat.com>
tester.c:  Fix hang and FS space exhaustion

The issue is that when you go through teardown, if you use
fail_unless in it if you actuall fail you end up calling
teardown again and you get stuck in a loop until you exhaust
the fs with a tmpfile.

For this particular issue to show up you just need to cause an error
when closing the connection which is what happens when you close the
connection on a plug-in that exited already.

Gris, please verify it works for you too.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
tester.c: Add tests for initiator id verification.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
C API & PY: Initiator verification. (V2)

C additions and python changes to support initiator
validation.  I changes the iqn validation to only
check the first 3 characters 'iqn|eui|naa'.  The
WWPN allows the same permutations and combinations
as Gris's original patch, but allows both the command
line and the plug-ins to use any of these different formats
when supplying initiators to the library.  In both cases
the library will re-format to the internal representation
which is nn:nn:nn:nn:nn:nn:nn:nn.

Plugins that take the wwpn and need it in another format will
need to convert to what ever format they require.

To ensure that this is consistently done, when creating an instance
of an access group the C and the Python code will convert the
initiator list automatically.  If the list contains invalid initiator
addresses the python code will raise an exception and the C code will
return NULL on the new record create.  The ambiguity in the C API
can be avoided if the caller validates their initiator id(s) before
creating a new access group record.

Both C and Python API have a single new public function added which
can be used to verify an initiator id.

Python:
def initiator_id_verify(init_id, init_type=None, raise_exception=False):
        """
        Public method which can be used to verify an initiator id
        :param init_id:
        :param init_type:
        :param raise_exception: Will throw a LsmError INVALID_ARGUMENT if
                                not a valid initiator address
        :return:(Bool, init_type, init_id)  Note: init_id will be returned in
                normalized format if it's a WWPN
        """
C:
/**
 * Checks to see if initiator id is valid
 * @param init_id       Initiator value
 * @param init_type     Type of initiator id, will get modified
 *                      to determined if type passed in is UNKNOWN
 * @return LSM_ERR_OK if initiator id is OK, else LSM_INVALID_ARGUMENT
 */
int LSM_DLL_EXPORT lsm_initiator_id_verify( const char *init_id,
                                    lsm_access_group_init_type *init_type);

V2: Fix convert from lsm to smis for wwpn

Signed-off-by: Tony Asleson <tasleson@redhat.com>
C & PY API: Document errors codes and add more checks

The error codes existed for reason.  Unfortunately some of the
checks weren't being done in code.  These are mainly useful in
a badly configed or installed library setup.  However, it should
be useful if any of these errors are encountered.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
Client example from wiki

Signed-off-by: Tony Asleson <tasleson@redhat.com>
Remove pool_create(), pool_delete() and related constants

Due to complexity of pool creation on different arrays. We would like to
suggest user to create pool using vendor specific tools.

 * Removed these methods:
    C:
        lsm_pool_create()
        lsm_pool_create_from_disks()
        lsm_pool_create_from()
        lsm_pool_create_from_pool()
    Python:
        pool_create()
        pool_create_from_disks()
        pool_create_from_pool()
        pool_create_from_volumes()
        pool_delete()

 * Removed unused RAID_TYPE and MEMBER_TYPE.

 * Removed related capabilities.

 * Removed error number:
    C:
        LSM_ERR_NOT_FOUND_DISK
        LSM_ERR_DISK_BUSY
    Python:
        ErrorNumber.NOT_FOUND_DISK
        ErrorNumber.DISK_BUSY

 * Plugins cleaned.

 * For 'sim://' plugin, it use raid type and member type to calculate pool
   size. We move pool constants into PoolRAID class for future use.

 * For 'ontap://' plugin, it's raid_type detection code just be commented out.
   We might use it in the future.

 * lsmcli cleaned.

 * Test updated:
    tester.c
    plugin_test.py

 * "make check" and "make distcheck" passed.

Signed-off-by: Gris Ge <fge@redhat.com>