Added interfaces that represent MBassador and MessagePublication.

I added interfaces that represent `MBassador` and `MessagePublication` to make 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.