Basic support for transforming KeyValueTrees
Add support for writing transforms from one KeyValueTree to another.
For now, only a small subset of simple transforms is supported, but this
should be mostly sufficient for a proof-of-concept for MDP processing on
the electric field code, and new cases can be relatively easily added.
These transforms can support two use cases: specifying how a legacy MDP
file maps to a more structured format, and for supporting changes from
version to version in the structured format. However, versioning for
the structured format (in particular, if/when it will be necessary to
recognize the version from input) likely still needs some work.
There is not much in terms of consistency checks, error handling, or
documentation, but that is better to add once using code exists.
Change-Id: Ie2570eee8a62c2d64b79e00925bbf1e40b62b261