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
understood. i'm definitely familiar with the go idiom. it works well there! ...but it's definitely unusual in python. no matter though, the long term solution is probably to move the bridgy half here to a-u, which would compartmentalize this a lot more. definitely a far-off TODO for now though!