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).
As long as that still works in the case where no "success" value exists. Otherwise someone could send a malformed message omitting the success and potentially cause a crash. (Which is why I think it was the way it was.)

Suggest jweiss put a test for this case.