Handle undefined integer arithmetic
Handle undefined integer arithmetic

Handle signed integer overflow, underflow and division by zero in
pn_eval_binary_op. Add one function for each operation to test before
calculating the result. pn_eval_* returns R_OUT_OF_BOUNDS if an
operation would cause undefined behavior. An error message is then
printed to the user.

The logic in is_undefined_* is from
https://www.securecoding.cert.org/confluence/display/c/INT32-C.+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow.
A modified version of code from that page is used in this commit.

jacwah/pcalc