Add spice backend support for kimchi

1.  Add spice support for kimchi template
    Now we can specify a spice parameter when creating a template and updating it.

2.  Add spice support for kimchi vm
    When creating a vm, we have a chance to change the graphics configuration to override
    the value from the template.

3.  Expose the real port for vnc/spice, so that users can connect vm with popular
    vnc/spice client tool.

4.  Spice-vdagent support is added too, so that when users happended to install
    spice-tool/spice-vdagent in their vm, they will get improved spice graphics effect immediately.

5.  Specifying graphics parameters when updating vm is not supported yet, it will be added separately
    in another patch.

Signed-off-by: apporc <appleorchard2000@gmail.com>
Validate graphics parameters input by users

1.  Validate graphics parameters from rest requester, with newly added
    json schema in kimchi.

2.  To use "format" property, i need to hook format_checker for Draft3Validator in controller.py.

Signed-off-by: apporc <appleorchard2000@gmail.com>
Update mockmodel for spice support

Update mockmodel for spice support.
Code about graphics port are removed.

Signed-off-by: apporc <appleorchard2000@gmail.com>
Update test case for graphics support

Because all of params validation are moved to control, i removed
the test code about graphics data validation in model.py.
Test code for ipv6 is added too.

Signed-off-by: apporc <appleorchard2000@gmail.com>
Add graphics parameters description in API.md

Add graphics parameters description in API.md

Signed-off-by: apporc <appleorchard2000@gmail.com>