adding upgrade code for upgrading from 0.9.7 to 0.9.8.

Will keep a set of codecs for serializing/deserializing current
objects, and a separate set for converting between versions.
Switched to use guice injection to create the codec everywhere.
You can throw the same object, right? Do you need to create a new wrapped exception?