Added interfaces that represent `MBassador` and `MessagePublication`.
This makes it easier to test and mock. Also, reduced the visibility of
`AbstractSyncMessageBus.handlePublicationError`, as it is really only
used internally.

The new interfaces also have javadoc markup.