Refactor code re-use by inheritance to using the strategy pattern

The original deserializers now act as simple wrappers and might be
removed at a later point, pending on further design choices.

The DeserializationExceptions no longer conatain a Deserializer,
as it turns out one of is not always available when such an exception
needs to be constucted.

Change-Id: I23a2d306f4f64b2ebc459b01256af78eda896d5d
Merge "Refactor code re-use by inheritance to using the strategy pattern"