New emulator API behavior

This changes the Chisel debug API to have a "stepping" behavior matching the behavior expected from Verilog simulation, in response to #216 that came up a while ago.

The underlying assumption is that there are two classes of use of the C++ backend:
 * Users of the Chisel debug API (which now reflects the new behavior)
 * Users writing test harnesses linked directly with the emitted C++ code

In order for these changes to not cause any undesirable changes for those writing test harnesses in C++, it is only necessary that they use `clock_lo` and `clock_hi` directly, as only the combined `clock` and `step` functions have new behaviors.