duncan: 
debugged 5 stages pipeline without forwarding, ok with the simplest 5
instruction case. need more tests

Other Major changes:
1. delay .next stage until all operations in a cycle finish
2. delay the finish clean up until all operations in a cycle finish

Intuition:
If not do that, in the same cycle, first execute instructions are in the
next stage when other instruction in the same cycle check for the stage
of them. That is not correct.