Enable type checking for attributes #80

Should this check if attributes are a subtype or equal?

Also, it seems like some types, such as NodeTypeValue, wouldn't make sense as
an Attribute.
Should the values in an Attribute be restricted to satisfy
isRuntimeKnowable() or isElaborationTimeKnowable?
Merge pull request #146 from TysonAndre/typecheck

Enable type checking for attributes #80