Move things into CompiledNode methods
Merge pull request #58 from Obvious/nick-compiled-node2

cAdd an explicit CompiledNode structure
Store the builds() nodes as Nodes instead of as strings
Validate node names
Merge pull request #60 from Obvious/nick-prefixes

Save NodeInfo instead of repeatedly re-constructing it
Clean up hash generation.
Properties that are only needed for hashing shouldn't be stored on the node permanently.
Explicitly enumerate what we use for the hash, rather than consuming everything and blacklisting.
Merge pull request #59 from Obvious/nick-compiled-node3

Clean up hash generation. Properties that are only needed for hashing shouldn't be stored on the node permanently. Explicitly enumerate what we use for the hash, rather than consuming everything and blacklisting.
Fix a bug in node name validation
Merge pull request #62 from Obvious/nick-validation

Fix a bug in node name validation
Fix a bug if you forgot to close a define() block
Merge pull request #63 from Obvious/nick-end

Fix a bug if you forgot to close a define() block
Make sure tests fail properly
Check length when comparing parameter equality
Merge pull request #64 from Obvious/kyle-fix-tests

Make sure test fail properly, and *properly* check parameter equality
Simplify failure tests
Don't parameter-check graph.subgraph
Merge pull request #65 from Obvious/kyle-simplify-tests

Fix parameter checking for subgraphs
Rename 'optional nodes' to 'void nodes', document them, and fix some bugs
Merge pull request #66 from Obvious/nick-void

Rename 'optional nodes' to 'void nodes', document them, and fix some bugs
Rename 'silent' to 'important', to avoid confusion