strongly type attributes
make attributes unique per ASTNode instance
fix more bugs
fix code review comment
fix whitespace
fix Key.toString
use TypeToken instead of TypeLiteral because it eases serialization
Merge pull request #890 from dwightguth/metadata

strongly type attributes