Replace the `api_key` argument with a hash of options

This change should be backwards compatible. 
nit: can we just say `if opts[:idempotency_key]` rather than the double negative? (`false` shouldn't be a valid idempotency key anyway)