Open
Description
Go has a (relatively new) package, context, "which carries deadlines, cancelation signals, and other request-scoped values across API boundaries."
We should add support for passing a context into the API.
Making this backwards compatible and also be a usable API is tricky. All new functions should take a context.Context value as their first parameter. Augmenting an existing API usually involves allowing the caller to set a context value in a separate call to the existing API call, and then migrating all users to a new API that takes the context value explicitly.