Major refactoring
This is a breaking change. This commit doesn't update the test suite or the
modlint tool, so even more so in that sense. This will be addressed soon.
To point out the changes:
* the components section no longer includes packages subsections for component
types; packages are listed directly under the component type identifier
* components can now be marked with the buildorder tag
* the validate() method was removed and property setters were enhanced instead
* modules can now include other modules, for building stacks
* the spec was cleaned up a bit
* we're a lot less forgiving now; properties expect the exact types they work
with and no in-place conversion is done for you
* we're stricter when it comes to loading malformed modulemd files and we will
go even further with upcoming commits
The spec won't change much, if at all, before the 1.0 release. The API may.
Signed-off-by: Petr Šabata <contyk@redhat.com>