Rework registers

* Registers are now in array instead of separate.
  This has the advantage of not requiring switch
  cases in the unit test code and application code
  where functions have been written to implement
  multiple opcodes