Added NOR gate, NAND gate, and buffer, along with associated tests.
Move "switch type" to an enum, instead of an opaque boolean