Checkpoint: implement L1 instruction cache.

Also modified so PC in pipeline is always the actual PC of instruction
rather than PC + 4 in some places.