Change the publish action to be a POST

Having had a read of RFC 7231, I think the publish action makes more 
sense to be a POST rather than a PUT, because it's an action that should 
be non-repeatable (a tag can only be published once), and is an explicit 
request to advance the publishing workflow, rather than just updating 
the state of the tag.
Support JSON at the tag publish endpoint