Fix a singularly stupid typo

Gerd dermert I've never had a :htl instruction :/
Re-enable printing from execute
Implement pipeline stalls

I forgot about data hazards in pipelines.. This diff implements at least
near correct support for data hazards. Note that special cases are
provided so that hazards against the immediate and zero register are
ignored because writing to those registers is meaningless in terms of
processor internal state.
Tweak no-op codes to use raw register IDs
Fix PC resolution in the pipelined processor

In a pipelined processor the "true" value of the PC register could be
anything with regards to the PC of an instruction in the execute
stage. As a result the _fetch_ PC of the instruction plus four is used
as per convention. This patch fixes the standard opcode to implement
this behavior.
Use test/is rather than booleans

Clean up the test case predicates to use clojure.test/is rather than
assert or combinational logic. This allows for the specific failure to
be reported to the programmer rather than a simple indication of the
failure's existence.

Also mixed in here is a whitespace "cleanup" and a rewrite of the
run-test fn to use the new t/ alias for clojure.test/
Spec: 'halt' is 'htl' not 'halt'
Spec: Remove non-existant halt instruction
Bugfix: Correct 0x22/0x23

 - 0x22 is ifeq
 - 0x23 is ifne
Add a reasonable failure message in vector decoding
Refactor out the fib icodes
Make bound a parameter

Because different processor simulators execute the same test program in
different cycle counts it make no sense to treat the cycle bound as a
property of the test case on an absolute basis. This change makes it a
parameter on a by-processor basis
Add a bound to the single cycle tests

Use a bound of 100 for the single cycle processor, because it doesn't
have to deal with messes like stalls.
Add a bound to the pipeline tests

Use a bound of 3x the single cycle bound. This is totally overkill, but
should do the job of never getting hit except for when the processor
gets into an error state.
Refactor fact-icodes, use c/seq->instrs

 - Refactor fact-icodes out of fact-test
 - Refactor both tests to use c/seq->instrs rather than implementing an
   equivalent inline operation which could be faulty
Improve variable naming
Add a way to encode map->vec

This commit adds a way to encode a map instruction as a more readable
vector instruction. Intended for use in debugging, so that
round-tripping of instructions can be tested.