Reworked arithmetic operations

Arithmetic operations are now done in their native datatype and only
casted if an overflow happens. This leads to better precision in results.
Also, hex strings are now allowed to have a sign (+ or -) if (and only if) they are
used in arithmetic opertations.
Made tests explicit where PS breaks its own specification
REFACTOR: code for division is easier to understand
Try more datatypes for numeric conversion
Merge pull request #257 from sburnicki/arithmetic_fix

FIX: Correct arithmetic operations