Add support for context.Context
This patch seeks to update all methods that make an outgoing request
to accept a context as their first argument. This enables the library
to carry a deadline and other information across API boundaries.
Signed-off-by: Aleksandr Yakimenko <urlucidfall@gmail.com>