Action-Schema JSON validation

charm.ActionSpec now has a ValidateParams method which accepts an
unmarshaled JSON document, and validates it.  If it is valid, the
method returns true; otherwise, it returns false and a list of
errors returned by gojsonschema.

WIP, opened PR for comments
The usual convention is:

c.Logf("test %d: %s", i, test.description)

(the name of the test is printed above)