Fix libvirt watchdog support

Using the flavor extra_specs property "hw_watchdog_action" was broken.
Scheduling of a new instance always failed with NoValidHostFound error
because of ComputeCapabilitiesFilter, which treated this property as a
host capability to be checked.

Commit f0ff4d51057080e769407e873e5ed212f15b773d caused the problem.

To fix this watchdog_action property is put into 'hw:' scope, so
that it will be ignored by ComputeCapabilitiesFilter in scheduler and
handled in libvirt driver. The doc must be fixed accordingly.

Now driver accepts both 'hw_watchdog_action' and
'hw:watchdog_action', tests were edited for these cases.
Were added TODO items to delete the compat code in the next release.

DocImpact
Closes-Bug: #1367344

Change-Id: Ic5344ec34a130ee5a0ed2c7348af0b9d79e3508e
Revise compute API schemas and add tests

This revises the servers, images, and flavors schemas to avoid a
duplicate definition of the top-level tags in those schemas.  Instead,
of defines each schema to allow either a list of tags with only
name/id (as in the index listings), or a list of fully-defined
servers/images/flavors.  It is not permitted to mix and match.

It also adds three kinds of unit tests for the API schemas:

* A basic check to ensure that the schema files are valid RelaxNG;
* A check to ensure that the collected body of schema files does not
  contain duplicate top-level tag definitions;
* Explicit test XML documents.

Closes-Bug: 885025
Change-Id: I542b420de34fd82bb2a2813f36637aef2c2d5c92
Merge "Revise compute API schemas and add tests"
Merge "Fix libvirt watchdog support"