Refactor publish_sync and mention it in the README

Now they support options, not just QoS, and the no-timeout variant is
implemented in terms of the with-timeout variant.