Refactor of the serialization tests

Creating a pull request at this point since I took the liberty of a huge method reordering.

The commits have the details, but as a whole I've put in FluentAssertions, added asserts to some methods that were missing it and rearranged the method order to express a focus on behaviors instead of a strict separation between serialization, deserialization and roundtrip tests.