Create AttributeSet for use by Nodes and Ports

Not doing verification against list of possible attribute names and
types yet.

Fixes  #81 
Instantiating `UndeclaredIdentifierException` takes the signature `public UndeclaredIdentifierException(String identifier)` so, in theory, you should just be passing `attrName`. I still think we should create a new exception type for this case but I don't have  a strong opinion.