Added ability to rename features

I'm not completely satisfied with this, but wanted to get it open sooner rather than later. I'll leave a few inline comments. The branch obviously won't build until we do something with `IvoryT` (I really wish you could re-target PRs in GH)

/cc @etorreborre @markhibberd @raronson 
I also think that we could do the following:

 - have a `diff` method on `Dictionary` returning missing ids 
 - have `validate` call that `diff` method
 - have a `rename` method on `Dictionary` to rename features