Make it easer to override SystemMessage serialization. Fixes #2940

  * Make SystemMessage extend Serializable to avoid ambiguity when
    setting serialization-bindings.
  * Set serialVersionUID in SystemMessages and create tests to
    ensure binary formats remain unchanged.
  * Add tests for reference.conf's serialization settings.
  * Make some existing serialization tests more robust.

Removed boilerplate from serialization tests

Use actual reference.conf; tidy up

Make serialization compatible