Rewrite talk()

* accept more arguments
* access_token moved to header
* split `fields` into `query` and `body`
* accept object for `body`
* added user/pass authentication
* added custom `headers`
* added global `timeout` override
* removed version from default UA
Moved app.accesstoken to auth.access_token
Minor export args rename
Added method accessToken.list
Added method accessToken.delete
Added method accessToken.generate
Trade user/pass for access_token on setup
Method devices converted to new talk()
Converted device methods to new talk()
device.func now takes argument properly (and talk fix)