chore: Split message attrs into client/server versions
Instead of requiring the only message attributes class to conform to
what both the client AND server need, split attributes into server
(which will handle configuration) and client (which is what we'll fly
over the protocol).