Allow `options.body` and `options.json` to be functions.

Addresses issue #13.