Print more informative missing opcode messages

This makes it a whole bunch easier to debug when I end up needing to
add opcodes to the simulator that I'd already added to the big list of
opcodes for something else.
Add defaults for sim/datum.c++ switches

I'm not sure if this is better or worse: it means I won't get compiler
errors inside datum.c++ when I add a new opcode (though I will get
compiler errors in the closely coupsed node.c++).  I'll still get
runtime errors.

The advantage is that I don't have to manage 4 mostly-empty opcode
lists.
Only check the low bits of a MUX select line

I'm not sure if this is a proper fix or if this means I should be
masking my input somewhere else, but it does at least fix one test
case (that I'll be commiting soon...).
Add a slew of new opcodes

These are necessary for a new design to run.
Add STDERR_DIFF #ifdef

This ifdef will print out a human-readable version of the VCD file to
stdout, which is designed to aid with debugging the simulation.  It
contains exactly the same information, it's just easier to read.
Print and abort() on cycles

I had cycle detection code in there before, I was just silently
ignoring them.  This will abort() whenever a cycle is detected, which
is probably the correct thing to do.
Add Fib test case

This computes the Fibonacci sequence in order.  It's not really a test
of anything specific, more just a general test of a slightly larger
circuit than the counter examples.