Refactor OTMessage

This is first part of OTMessage refactoring.

Splits OTMessage code and code for specific commands. This allows to have commands defined separately (in a module).
BTW one other thing I noticed here...

There are many places where you instantiate a new object, instead of using a single object instantiated above. For example:

-        strDepth = xml->getAttributeValue("depth");
+        OTString strDepth = xml->getAttributeValue("depth");

See how it used to use strDepth from above, but now you are instantiating a new object in each block?

****FYI: that's what we were doing before, and we were overrunning the stack by instantiating too many objects. That's why it was changed to instantiate at the top, and use the same object in each block, instead of instantiating a separate object in each block. We were forced to. I wouldn't be surprised, if you change it back like this, that you don't end up facing the same problem.