Export list vms functionality

List vms is a common function which is likely to be refered
by multiple module,
make it static will avoid unnecessary instantiation of vms model
and stats collecting task to start.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Fix vm disk path when it does not have source element

When vm disk does not have source element,
objectify library will error with 'no such element: source'
Trap this exception.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add volume ref_cnt: update api.md

Update doc to support storage volume reference count.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add volume ref_cnt: Update controller and json schema

Add ref_cnt to controller to report reference count information.
Update json schema validation.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add volume ref_cnt: Add model and mockmodel implementation

Set ref_cnt to 0 when new volume created,
if the ref_cnt cannot be found,
which means it is created outside of kimchi scope,
report it when lookup storage volume,
search info about storage volumes used by vms and count the ref_cnt.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Add volume ref_cnt: Update test

Add mockmodel test and model test to validate:
1. ref_cnt of storage volume forked internal vm creation is 1.
2. ref_cnt of storage volume created from REST API is 0.

Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com>
Multiple pep8 fixes

These can be diagnosed by pep8 1.3.3,
but may not report error in some version,
These errors does not comply:
    http://www.python.org/dev/peps/pep-0008/
so fix them.

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