lib: added constructors to derived message record classes
The MessageBase class calls Clear() in the constructor, but this cannot
call the derived class's Clear(), since it does not exist yet.
Therefore all derived classes must call this themselves again.
Ideally, MessageBase's destructor should also be virtual here, but
there are no other virtual members, and the class inheritance here
is purely for implementation convenience. MessageBase objects are not
meant to be used alone (see protected constructor/destructors).
Leaving MessageBase non-virtual for now... feel free to convince me
otherwise if this affects you.