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

ref issue snarfed/bridgy#223
ha, i knew you would say that! i'm ambivalent; it was definitely a nice little bit of inline documentation when i was checking all the return sites (to see which returns were success and which were failures), and also nice if we decided to restructure the return values.

but long term they do add unnecessary baggage, so i'm pretty ok with removing them.