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).