Subtraction moved over to use smart pointers.
Multiply procedure uses smart pointers.
Removed some unnecessary pointer casts, added back division operator.
Equality function
If procedure and wider conversions to bool cell.