make *attributes* first class

per #34, we need the notion of well defined attributes

it should be one of these three types

![image](https://f.cloud.github.com/assets/1418690/1298064/ff531ba2-30ed-11e3-9202-167664e93fcc.png)

these should be for nodes **and** edges.

should an ontology be defined for the graph or should each node have a function to get it's currently defined attributes? both?