Add new API method: saveAsNewSettings

After @jburel's investigation, the remaining issue
with this branch looks to be that clients are assuming
(rightly) that the rendering def they have in hand is
their own. That's always been the case.

With this change, that no longer holds.

In order to not break the API the intention is:

 * the old method will throw an exception
   when users try to save someone else's rdef

 * the new method will *always* create a new
   rdef, set it as the current one, and return
   the new id.
Implement saveAsNewSettings with internalSave()

The primary logic from saveCurrentSettings which needs
to be avoided are the calls to `new.setId(old.getId())`.
`internalSave(boolean saveAs)` uses the saveAs argument
to skip over these sections.

The added test passes successfully.
Add check for ownership on saveCurrentSettings

To preserve the previous logic in which clients never
received RenderingDef instances belonging to other users,
we now detect when things have gone amiss and raise an
exception.

Client developers are responsible for checking the ownership
of the RenderingDef in hand and calling the appropriate method.