Eng6647 updateclasses

ENG-6647: add a way to upsert new java classes to the catalog
ENG-6389: verify class loading and initializers during catalog update
ENG-6693: add a way to delete classes from the cluster's catalog

Small matching pull request in pro, just has an updated junit test.  All the meat is here.
Yeah, I know...CatalogChangeWork is already enormous and I was trying to be clever and avoid adding two more fields to it.  Also, ClientInterface.dispatchUpdateApplicationCatalog doesn't need to distinguish between the two operations in order to fill the fields in correctly in this case.

How about just making the field names less specific, maybe something like operationBytes and operationString?