Simplify API for interacting with various node types

Each type is a subclass of ContextNodeModel with type-specific logic
such as recursive validation and fetching for branch nodes.

Field and concept ids object keys have been renamed from
`id` and `concept_id` to `field` and `concept`. Support
exists for this change as of Avocado 2.0.21
Force the attributes to be parsed on ContextModel construction

Ensure `this` is returned for `clear` methods
Implement ContextNodeModel.fetch and ContextModel.fetch

Update ConceptForm to use this method
Merge branch 'query-workflow' into 86-contextnode
Merge branch 'query-workflow' into 86-contextnode
Override save and toJSON on ContextNodeModel

This provides a means of changing the internal state
of the node without making it visible to it's callers
(via toJSON).

Fix #91
Explicitly reset collections on session open

This is necessary due to a change in Backbone 1.0.0+ where collections
will be updated in-place by default (and thus not reset). This ensures
the collection is reset and the 'reset' event fires.

This fixes the issue that caused the collection never to resolve
itself because the 'reset' event did not fire.
Merge branch 'query-workflow' into 86-contextnode
Refactor where UI context-based actions are available

For field-level contexts, the UI components have been moved from
FieldControl to FieldForm. This improves FieldControl by focusing
the view on operating on the condition operators and values.

Actions have been added to ConcepForm which operates at the
context-level.

The FieldForm and ConcepForm implements should remain consistent
(and will most likely be broken out into a base class) to enable
interchangeable use of the two. The concept-level context _may_
contain more than one field, but the ways it add/updates/removes
the condition is transparent.
Add explicit BranchNodeModel.save to recurse over childrem

The base ContextNodeMode.save now performs a shallow clone of
`attributes`. This is prevent deep-copying instances. As a result
the BranchNodeModel extends this behavior to recurse over children
and _gather_ their publicAttributes.
Simplify ConceptForm field and chart rendering

Remove nesting of `context` option within `data` object on
FieldChart instances.

One note is that the creation of the chart here may be redundant
since FieldForm can handle creating it's own chart. However the
location of the rendering the chart (i.e. within .concept vs
.field) must be taken into account as well.
Merge branch '92-actions' into field-controls
Change 'field-controls' to singular form
Merge branch '86-contextnode' into field-controls
Add support for deep saving children in BranchNodeModel

This enables ConceptForms to manage their internal fields by
saving and/or clearing data.
Change BranchNodeModel to use deep validation by default
Move UI element state changes to separate methods
Change BranchNodeModel to not destroy children nodes by default
Return validation result on ContextNodeModel.save

The BranchNodeModel takes two additional options to handle
child nodes. The `strict` flag will cause any invalid nodes
to fail (and not save). The `ignore` flag, if true, will remove
invalid nodes from the output, otherwise the previous state of the
node will be used.