Feature: transform state

For transforming persisted state, e.g. if a class has been renamed.

For reviewing, probably best to go through one commit at a time.

For the CLI support, this is really to get early feedback. It needs improvements, and I haven't written any docs.
I'm on the fence here.  Our freemarker support is pretty good here, we can set that up to access entity config, etc.  So that seems pragmatic.

OTOH parameters is the normal way with xslt, so that's standard.

I'm not sure what params we need here, I think that would sway me.  For now however I lean towards keeping it as is, with a TODO (which I'll add).