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
Im naive to the uses of contexts, but why do we return the cancelFunc?