Rename generic Concept and Field views to *Info

Each view only renders the info about the object including
name, description, category (for concepts). This makes their
meaning less ambiguous.
Break out nodes classes to separate modules

Add support for public nodes and seamless updates on
subsequent responses from the server.
Add tests for checking event triggering

These tests include the most end-to-end testing of the API.
Propagate options.create to declare an explicit node type

For new nodes that are not technically valid, this caused a
validation error since the type was being inferred.
Move convenience methods onto the ContextNodeModel

The _internal_ nodes drive the state of their public nodes, therefore
the methods do not need to be on the BaseNode (in which the public nodes
are derived from).
Public branch children now reference existing public nodes

Previously each collection received a copy of the attributes which
caused redundant nodes and excessive event firing. Even a single
concept, single field _tree_ would result in two additional copies
of the condition public node and 1 additional copy of concept branch
node.

Uses references removes these redundant copies. This also fixed an issue
in which a different copy was firing the "change" event than the one
bound by the a given view.
Add initial context filter list

This currently supports disabling and removing filters in a flat
manner. Root-level actions also exist for clearing all filters or
temporarily disabling all filters.