Migrate put_key -> put, new signature

Again, tracking the other clients' method names and signatures.

Converted the query & headers portion of send_request to an options hash, now
also grabs body from that.  Reasoning: method and url are not optional,
everything else is.