Rename keys functionality

This adds a new function to the public API of fanci called `rename`. It takes a source object and a template just like `extract`. The purpose of `rename` is to be able to rename the keys in an object without destroying it's structure.