Changed the Exception -> IOException in method signatures of the serializers
REVIEW-2957 Reworked the serialization/deserialization of the resolution results.

1. This way it will be easy to implement skipping bytes properly.
2. Access to the BinaryStore is done via actions, so that we can apply consistent strategy for exception handling, etc.
3. Couldn't quite use Action<T> in BinaryStore because I needed an exception in the signature (so that it is more convenient for the client).
Moved classes to a better package
REVIEW-2957 Made the skipping of the bytes in the resolution results serialisation safe.