Bug 897865 - Ctxdata should have an API for setting and unsetting values. r=gandalf

Introduce: ctx.updateData(ctxdata: Object)

Updates the context data which will be available to all entities in the context.
The `ctxdata` is an object which extends the context data per key and per level
of hierarchy.  In other words, the following two calls:

```javascript
ctx.updateData({ user: { name: "Bob" } });
ctx.updateData({ user: { gender: "masculine" } });
```

will make the internally-stored context data look like this:

```json
{
  "user" : {
    "name": "Bob",
    "gender": "masculine"
  }
}
```