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.
Add a really cruddy but effective logging system
Fix some stupid errors in my logger
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/
Use the new logger rather than println