Make Attributes Immutable #80

Finish making a lot of code in the Intermediate immutable, including
Attributes.

Fixing tests for this.

This does not include type checking of attributes.

This does not yet distinguish between an attribute that is missing and
attribute that is set but not expected. The number of exceptions to be
listed in "throws" would grow large, and may need to be rethought.
Fix main checkstyle
Add base class SchematicException and more types of exceptions

-	add base class for exception caused by an invalid schematic
-	add InvalidAttributeException and InvalidIdentifierException.
-	fix checkstyle errors in the tests directory
-	Make some tests expect SchematicException instead of a long list
-	remove TODOs
Merge pull request #121 from TysonAndre/immutableAttribute

Make Attributes Immutable #80