Context is king

Whilst doing a little tidy up of the discussion modules, and having a chat to @phamann, a thought of having the context as a dependancy made a lot of sense. This way we aren't passing around a variable like a hot potato.

## Why?
Instead of doing DI through passing arguments around, we use RequireJS.
Breaking our common utilities down into bite size surprises was a step in this direction (e.g. the mediator).
This is just following that pattern.

## Show me the money
```javascript
// Module man.js
define(['common/utlis/context'], function(context) {
    var Man = function() {
        var elem = document.createElement('blink');
        context().appendChild(elem);
    }
});

// Parent...
define(['common/utils/context', 'man'], function(context, Man) {
    var freeMan = new Man(); // renders in body
    context.set(document.getElementById('concreteShoes'));
    var trappedMan = new Man(); // renders in element
});
```

## Notes
* Context is functional and should be assigned to variable in scope as it might changed later in the chain of events.
* [Example of tidier instantiation](https://github.com/guardian/frontend/pull/2775/files#diff-43937977f51fb9068e0c88e5e49dd422L214)
* [Example of use](https://github.com/guardian/frontend/pull/2775/files#diff-f8a6cf5797c660b3ea6574b8c5c1bdc1R24)

![KING](http://gifs.gifbin.com/250yu273swsw.gif)