move _default_network_check from top model to networks model

Top model should load other model and structure preparing.

The default network check is network function, move to networks model
is more reasonable.

And the important: it is more convenient to call attr of networks model

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
add a new function to get an available network address

Then the default network check code can make use it.

Also add a new argument for get_one_free_network to make it more flexible

Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com>
Issue #302: let 'create' attr of networks model to create default network

Then the IP and Bridge name will not be hard coded.

Also in some scenarios, such as in nested KVM, the default network
created by kimchi on L2 guest can avoid the same network address of
L2.

https://github.com/kimchi-project/kimchi/issues/302

Test this patch:
1. change the IP address of default network to the subnet that one
of your host interface is in.
$ sudo virsh  net-destroy default
$ sudo virsh  net-edit default

2. restart kimchi.

3. check the ip address changes.
$ sudo virsh  net-dumpxml default

4. delete the default network.
$ sudo virsh  net-destroy default
$ sudo virsh  net-undefine default

5. restart kimchi.

6. check the ip address changes.
$ sudo virsh  net-dumpxml default

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