When making API calls, provide "data" not "params"

When using the requests library (or our wrapper), one can provide the "data" and
"params" arguments. The "data" arguments can be encoded as e.g. JSON, but the
"params" arguments are always encoded directly in a URL.

When communicating with the API, it is sensible to provide all arguments through
a single channel. This change ensures that, whenever possible, all arguments are
passed to the API as JSON-encoded data.