Fixed bug where BigIntegers were not always immutable during subtraction

Fixed by adding a temp var to the subtract function and added two test
cases