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
I figured it was important to make sure that we're handling standard unmarshaled JSON properly; I can't guarantee that I will write tests that perfectly imitate the values written by json.Unmarshal.