Represents a Message type that can be contained within another Message. ChildMessages that have a cached
backing byte array need to invalidate their parent's caches as well as their own if they are modified.
To be called before any change of internal values including any setters. This ensures any cached byte array is
removed after performing a lazy parse if necessary to ensure the object is fully populated.
Child messages of this object(e.g. Transactions belonging to a Block) will not have their internal byte caches
invalidated unless they are also modified internally.