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 don't know if we really need all this error checking. All we're doing is making a lossy translation from a `UndeclaredIdentifierException`, which might contain valuable metadata, to a less semantic `NetlistConstructionException`