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'm not a huge fan of the way this exception class is used. You should refactor to use a number of more semantic exception types.