Move configuration parsing to config.py

The configuration is also needed for other code except starting kimchi
server. So it should be moved to a separate module, config.py. Then the
configuration can be accessed directly by importing config module.

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>
Add a configuration for vnc websocket proxy

We are going to use one proxy instance to forward all vm's
vnc traffics. The proxy instance listens on a fixed port instead
of a random one. This patch makes the port configurable and exported
to client by adding it to the response of '/config'.

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>
Use one weksockify instance as all vms' vnc proxy.

Currently, we start a new weksockify proxy on every vm's connect action.
It causes trouble to allow the vnc traffic in firewall because we choose
a random port for each vm. And it's also obversed that vnc connection fails
because of race between client and proxy server. This patch changes to use
websockify's target_cfg option instead of target_port. Then kimchi can
dynamically add proxy configuration for a vm. It adds a map of target
host/port and token pair to websockify's cfg on the connect request. With
this change, all vnc traffic can be forwared in one tcp port, and therefore
it's possible to add firewall rule for kimchi's vnc remote access.

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>
Remove vnc related code in mockmodel

Mockmodel is used to test restapi's request validation and response.
We don't need to start a real vnc server because we don't run functional
test with mock model.

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>