To be implemented by subclasses. Return the size of this object for the serialized version of it.
I.e. how many bytes this object takes when flattened into a buffer. This may be different for each instance,
or can be the same. This may also just be an estimation. E.g. FRAG uses it on Message to determine whether
or not to fragment the message. Fragmentation itself will be accurate, because the entire message will actually
be serialized into a byte buffer, so we can determine the exact size.