Make sure our application Context is canceled.
Make sure our application Context is canceled.

It is a resource leak to create a cancelable or timeout Context and not
cancel or time out. This leak can be avoided if a parent of that Context
is, itself, canceled.

Create a parent Context for each request and cancel it at the end of
each request. That way, we ensure that any dangling timers or
cancel Contexts are reaped after the request has finished.

BUG=None
TEST=unit

Review-Url: https://codereview.chromium.org/2381743002

luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go,luci/luci-go