Define efficient serialization proxies
Superclasses have footprint in serialization protocol, as their
descriptors get written out.
Capture Externalizable logic into SerialForm, which implements
Externalizable -- the protocol to be easily implemented without a
superclass. This entails updating the API footprint of AbstractProxy
to reuse its methods.
Then introduce shorthand proxy classes which behave exactly like their
AbstractProxy counterparts, but without the AbstractProxy baggage.
This enables reading implied serialization format, if we encounter it,
providing forward compatibility with the format.
JIRA: CONTROLLER-2056
Change-Id: I4da54ca57849c2bfdaaf76c22e7903abcfa58be9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
2dedb8231e13abe55d6b75eb532d23dbe536e168)