Add language directly to node

This is harmless and more accessible for downstream clients so they do
not have to map the validated node to the corresponding language node.

This is one of the components in migrating to supporting the new
validation implementation. See https://github.com/cbmi/avocado/wiki/Validation
Modify context validation to disable invalid nodes

This takes a more passive approach to validating context nodes, but
prevents the context from getting in an unusable state. Validation
errors result in the node being disabled.
Add `template` and `default` fields to DataContext and DataView

Close #79