Show helpful error message if JSON can't be parsed

The JSON module shows only the area of the error and then all the
following lines until the end of the file without a line number.

To make the error message for the user more helpful the needless parts
are cut and the line number is calculated.
Recognize block ends of JSON arrays

Before that the regex only found curly brackets and not square brackets.
Use factory method to create Os objects from name
Inform the user about json parser issues

If something is broken in the global scope definitions or meta data the
JSON parser isn't able to localize it and just posts the whole JSON
block.
Since we can't do much about this we show an explanation instead.
Allow json validation without a description store
Implement unit tests for JSON error handling
Merge branch 'os_factory_2'

Pull request #146
Only list system description with manifest files

Instead of just checking for directories in the .machinery path the
existence of the manifest.json file is verified.
This does prevent directories without manifest.json being listed with
`machinery list`.
Don't show json parsing errors in `list`

Only show a placeholder error message in `machinery list` for
descriptions which couldn't be parsed.
Also explain how to see the full error message. As soon as the
validate command is implemented the placeholder message should
be updated.
Merge pull request #141 from SUSE/fix_error_message_about_broken_json

Show helpful error message if JSON can't be parsed
Use enum instead of regex in repository schema
Merge pull request #150 from SUSE/update_repositories_schema

Use enum instead of regex in repository schema
Document format versioning policy
Merge branch 'format_versioning'

Pull request #143
Add JSON schema for scope "changed-managed-files"