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
Added Antlr building to the project
Merge pull request #125 from manifold-lang/antlr

Added Antlr grammar for front-end language
Refactored codebase to share primitives between front end and back end
IN PROGRESS
Force java version 1.8 in gradle
Fixed circular dependency on TypeTypeValue
Renamed compiler.back to compiler.middle
Merge pull request #126 from manifold-lang/values-revamp

Refactored codebase to share primitives between front end and back end
simple netlist-building
test cases for Net and Netlist
simple DRC: check for multiple drivers
fix source of PortTypeValues used for comparison
fix position of comments in test case
code generation for registers and toplevel I/O
no tests but. code generation.
exception-throwing nits
Merge pull request #128 from mtrberzi/issue118-netlist-construction

Netlist construction from schematic