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"