* Use Version instead of AirbyteVersion * Update Deserializer interface to fit better in existing flow * Add versioned migrator * Refactor DefaultAirbyteStreamFactory to enable Versioning * Use explicit constructor * Add logging on failed message upgrade