use promise
update test to use `request` property

sync now returns a promise, not the request object itself. the latter is
attached to the promise under the `request` property.
update package.json, bump to 1.0.0