feat(util:context) adds extended context interface

This new interface is a drop-in replacement for the go.net.context.

It adds an error logging method:

```
LogError(error)
```

TODO:
* expose functionality that allows caller to handle logged errors
The cancelFunc can be used to manually cancel the context.
``` go
ctx, f := context.WithCancel(parent)
go operation(ctx)
// decide to cancel operation
f()
```