Split #from_json into three methods (parse, validate, objectify)

That makes the code less complex and more readable and will be helpful
to handle validation errors differently in different commands.
Get rid of SystemDescription#from_json method
Extract JSON handling into a Manifest class

That way the SystemDescription interface becomes cleaner and the
SystemDescriptionFactory can use that code directly instead of calling
Fix long lines