minor cleanup of program counter module
simplified program counter, no functional change
add immediate (addi) cannot use register as 3rd argument

The add immediate instruction (addi) cannot use a register
as the third operand, not even the register $zero, it must
be an immediate value.

Fix all instances of this error in the .asm test files.
remove 'halt' instruction from test code

The 'halt' instruction isn't supported by the mips Gcc
assembler and it isn't really needed so just remove it.
assemble using Gcc

Previously, the test code was assembled using a custom assembler which
was not included with this project.  This made it difficult to try out
new code when the assembler was not available.  Improve this situation
by assembling the code using a standard Gcc MIPS assembler.

Compilation was tested using the MIPS cross compiler available in
Debian (binutils-mips-linux-gnu).  An additional program, bin2hex.c, was
created to convert the binary dump to ASCII hex format suitable for use
with a Verilog simulator.
rebuild test/*.hex using Gcc, padding added to end

Re-assemble some of test/*.hex using Gcc, those which only had padding
added to the end.
rebuild test/*.hex using Gcc, branch with noop

For whatever reason Gcc adds a noop after some branches.  This should
make no difference.  But it also causes a change in the branch opcode
since the destination address is one more than it was previously.

Re-assemble some of test/*.hex using Gcc, those which had a branch
instruction where a noop was added.
add mising .out files to Makefile

The output file Makefile target was inadvertantly deleted during recent
changes.  Re-add it back in.
updated *.check for minor Gcc differences

Since Gcc adds noops this produced some differences in the test *.check
files.  Each of the check files were compared against the new output for
any significant differences.  In all cases the differences were
inconsequential.  Most were additions at the end which were don't cares
before.

Update all the .check files for the new Gcc output.
cleanup test bench description in README
remove obsolete qemu/ files

Now that the .asm files can be assembled using a Gcc MIPS cross
assembler there is no need to run an entire Qemu install.

Remove all the files in the qemu/ directory.
fix name referenced in t0005-branch.asm comment
add test for beq with different registers

The branch if equal instruction works correctly and takes the branch
if the registers to be compared are the same.

  beq $a1, $a1, label

However, if different registers are used, which have equal values, it
should still take the branch. Unfortunately it fails to do so.

  beq $a1, $a2, label

Add a test case for this scenario.

Reported-by: Masoom Nazari <m.nazari@tabrizu.ac.ir>