Adds WebSocket++ to cpp/requires
Adds rapidjson to cpp/requires
Updates cpp/requires/README
Updates tests for change form log() to history()
Refactors Component instance caching and retrieval and introduces runtime class information which is necessary for serving of components.
Implements some of the serving methods for Stencils
Adds JSON namespace
Adds patch to allow for copying of JSON documents. Other `Json::Document` enhancements.
Adds `Websocket::Server`
Renames `Grid` to `Array<...>`

The name `Grid` was intented to differentiate static arrays from dynamic arrays. However, when applied to other projects this nomenclature felt a little weird, and probably uneccessary. So we have reverted to the single templated `Array` class.
Renaming and reorganisation of `Array` associated files
Adds some `Array` associated files
Merge branch 'master' into contexts
Merge branch 'contexts' into serving
Changes in Websocket interface
Changes in Context and RContext
Flattens files and namespaces for `Context`s