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
Normally I would completely agree, but given how tabby and huge the tests are here, I think it actually remains *more* readable to condense the tabs and closing braces a bit.  It does make the assumption that things are properly tabbed, but I think failing tests and the compiler would catch errors there.  I'm open to confirmation that this is a showstopper but it's really much more readable the other way and @fwereade suggested it in the first place -- I'll let you two battle it out :wink: