Digital backend: basic netlist construction and digital primitives

The only primitives supported right now are I/O pins and registers, for simplicity (the other gates are even easier than register, but I kept them out in order to hasten getting initial feedback). So, this touches both #117 and #118.

A number of tests are included against both valid and invalid schematics to check the behaviour of netlist-building. The valid tests are parameterized so that the same "always-true" assertions can be made for each model schematic.

I had to modify the checkstyle config to suppress checks on Netlist.java because of Java 8 parsing issues (#122). This should be reverted when a new version is available that understands Java 8 syntax.
I think all this error checking is good defensive programming but adds a lot of noise to the code. Since these are error conditions indicative of a compiler bug, I would rather see assert statements than error strings.