Initial

@kballenegger , @nicotaing 
this is my first pass at making the modernizer library.  Basically the way it works is takes the block passed to Modernizer and parses it looking for methods named request_version, modernize, first, and last.  Within modernize, first, and last theres another parser which creates the translations from one version to the next.  This works very similarly to validate.  At run time, it iterates through all the translations and runs them on the hash passed to Modernizer.translate.  env and body are available to all maps as instance variables.  One question I have is I decided if you do an 'add' it will not overwrite existing values.  Does that make sense?