shallow scan: extend API.md to make volume report iso information

Add os_version and os_distro for iso format storage volume.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
shallow scan: Report path info to storage volume

Iso path will be used in template create,
path for other volumes may be needed by user,
report it in storage volume information.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
shallow scan: return unknown distro and version rather than none

Returning None need further translation to unknown version,
return unkown directly if distro and version not found.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
shallow scan: Change controller to be compatible with virtual pool

Storagepools will forward requests for reserved pools
to virtual pool handler, real pools request for real handler.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
shallow scan: Add model support

Query every storage pools and filter results,
report all isos real path to user.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Shallow scan: Add mockmodel implementation

Query all storagepool and collect the isos in them to isopool.
As mock model use mock iso, template creating should allow
the mock ones.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
shallow scan: Update testcases

Move tests for iso path validating to model,
because only real model validate it.
Add test case for shallow scan.
Prevent creating pool with reserved name 'kimchiisos'.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Create templates by shallow scan, deep scan and distros

Create templates by shallow scan, deep scan and distros

Dependent patches:
[project-kimchi][PATCHv12 0/7] Add shallow scan support
[project-kimchi][RFC][PATCH 0/7] Deep scan support
[project-kimchi] [RFD][PATCH 0/5] support distros
[project-kimchi] [RFD][PATCH] distros: Makefile.am put

Signed-off-by: Xin Ding <xinding@linux.vnet.ibm.com>