Updated to take into account the different formats for BRE ad BRNE opcodes, which require two fields (besides opcode). The class now has an overloaded constructor to reflect this change.
Updated toString() methods to reflect addition of HALT instruction, and the reformatting of BRE and BRNE instructions.
Added more constraints to constructors, preventing invalid register/memory address references.
Ensured the toString() methods print hexadecimal letter values in upper case format.
Added more tests to account for changes to branch instructions (change in format for BRE/BRNE).