We must use [ ... ] in gsu_is_a_number() because arithmetic expansion
with ((...)) undergoes parameter and variable expansion. For example
x=foo
gsu_is_a_number "$x"
will pass "foo" to gsu_is_a_number() where the expression (("$1"))
tries to expand the (non-existing) variable foo, aborting the script
if set -u was given.
This bug was introduced a few month ago in commit
44860e92 (Use modern
style arithmetic evaluation everwhere).