Create a SessionContext model.

* Get rid of context that is stored in network.js and user.js, which ended up causing aliasing problems.
Split context into network-context and user-context
Merge pull request #3997 from shane-tomlinson/extract-context-object-squashed

Extract session context objects into their own objects.