publish: improve error reporting for comments, likes, and shares

- change create methods to return a tuple containing the result and
  a descriptive "failure" object (instead of throwing
  NotImplementedError)
- give informative error messages when publishing comments, likes,
  or shares without a target url for the given silo
- added unit tests for the more detailed error reporting for facebook
  and twitter publishing