Make the `rename` template consistent

The initial implementation of the `rename` template used to have the old
source keys as its keys and the new (renamed) keys as its values.

This is slighly inconstent with the intention of the template, which
defines how the new object should look like. Therefore it makes sense to
have the new keys as the actual keys of the template, and the old source
keys as its value. This is a BC-break for the sake of clarity and
consistency.
New `transform` functionality
Allow the usage of format functions
Add tests and description about format functions