implemented forwarding and stalling in Logisim
completed static branch not taken implementation

There were two problems with the previous branch
implementation.  Branch detection did not occur
until the memory stage (stage 4) which meant that
three instructions after the branch were in the
queue.  And if a branch was taken these instructions
were not flushed.

To fix these problems branch detection was moved to
the decode stage (stage 2).  And it can now flush
the instruction in fetch (stage 1) when the branch is
taken.
refactored forward logic in to a signal and a mux