(PUP-2663) Allow string to contain leading sign in numeric conversion

This makes it possible to use an unary +/- in a string. The sign
of the converted value abides by the unary string sign. White space is
allowed around the sign, and at the end of the string.

'+ 2' + '- 2' == 0

This is of value when dealing with original data in string form
that needs to be converted. Without this it is especially difficult to
pass a negative value around in string form.
(maint) Remove redundant code
(PUP-2663) Adjust regexp to only match complete string, and not \n

\s includes newline when ^$ is used.
^$ skips leading and trailing optional matches
\A\z does not skip as they force matching of strings start/end
Merge pull request #2700 from hlindberg/PUP-2663_allow-unary-plus-minus-string-numeric-conversion

(PUP-2663) Allow unary plus/minus string numeric conversion