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
Another thought strikes me: are we always going to be unmarshalling action parameters from JSON? If not, perhaps we need to cleanse paramsMap before validation.

BTW, is "paramsMap" named correctly - can't it, for example, be a simple string? If so, perhaps paramsValue might be better. If not, then perhaps it should be typed map[string]interface{}.