Scope separator should only be ","
Unify scope parsing and checking for their existance

I have added the Cli method process_scope_option to parse the scopes and
check for their existance.
This does also allow the consolidation of the scope error handling.

One requirement for the scope check to work is that each inspector has a
renderer with the same name an vice versa.
This is at the moment the case but if this changes in the future we must
pass along if the scope list is relevant for the renderer or the
inspector.
Remove scope verification from tasks

The scope handling is now completely done in the Cli class by the
method parse_scopes_string().

Since the cli commands only pass along a verified scope list there
is no need to check them in each task.
If no scopes are provided by the user all scopes are passed along
to the tasks so there is also no need to allow calling the Task
method without scopes.
Remove obsolete exception classes
Check scope names for invalid characters

To prevent exceptions when converting the scope name to the class name
the scope is checked against a regex.
Merge pull request #107 from SUSE/only_allow_comma_separators2

Only allow comma separators2
Removed verbose option from compare command

  The verbose option in the compare command was only present
  in the command line help and had no effect on the command itself.
Document verbose option of remove command.
Improve verbose option of list command

  The verbose option of the list command was poorly documented
  and didn't carry all relevant information saved in the meta section.
Improve `list` output

  The machinery list output was very hard to read particularly when
  using the `verbose` option.
Merge pull request #106 from SUSE/improve_verbose_option

Improve verbose option
Update NEWS and RPM_CHANGES file for sprint 21
Merge pull request #108 from SUSE/update_news_file_sprint_21

Update NEWS and RPM_CHANGES file for sprint 21
package 0.19.0
Prevent unit tests during rpm:build

We don't want the unit tests to be called each time the package is
build since building is also required for the integration tests.

This allows running the integration tests on a work-in-progress code
base even when the unit tests are failing.

This doesn't affect the release task since it is a separate code branch
and requires also the code base to be checked by Jenkins.
Merge pull request #109 from SUSE/dont_run_unit_tests_during_rpmbuild

Prevent unit tests during rpm:build
Use "class << self" syntax for methods in SystemDescription

Replace "self.<method-name>" syntax with "class << self" syntax in
SystemDescription (per coding conventions).
Extract SystemDescription#validate_json

We'll have more validation code soon, so it's worth to have a special
method for it.
Don't save version metadata for descriptions without format version

Saving version metadata for old descriptions without format version
resulted in JSON like this:

  {
    "meta": {
      "format_version": null
    }
    ...
  }

I'd rather like "format_version" not to be present in this case (so that
we can say it must always be an integer if it is there).

Saving old descriptions happens only in the tests, so this is quite an
edge case, but I think that cleaner and more consistent description
saving code can't hurt.
Implement JSON Schema validation of system descriptions

The validation only validates global description structure, not scope
data. This will be done in the next phase.

Note the validation doesn't require descriptions to have the "meta" key.
This is to accomodate old incompatible descriptions.