template supports networks: let template xml support more networks

If a VM is just in one network, it may not access other machines in
different networks.

In most product environment, more networks are needed.

Such as a network management, a service manages all the VMs in
one network. Such management system is isolated from the internet
for security reasons.

And a more public network is needed for a VM to access the internet.

So a vm with more networks is a common scenario.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
template supports networks: fix test case

after template supports networks, we should change the test case accordingly

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
template supports networks: update API

add 'networks' option for template get/create/update

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
template supports networks: update controller and json schema

for json schema,  verify the 'networks' option when creating or
updating template.
for controller, add 'networks' attribute when GET template.

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
template supports networks: update model

check all networks exist

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
template supports networks: update mockmodel

check all networks exist

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
template supports networks: update test case

update test_rest and test_model

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>