Reorganize message_10 module

I pulled some common functionality out, and also un-nested classes, as I did with the messages_11 module. I also updated the documentation that described the nested classes.