Ensure LexNumCmp::cmp only returns 1, -1 or 0

strncmp's documentation says:

    It returns an integer less than, equal to, or greater than
    zero if s1 is found, respectively, to be less than, to match,
    or be greater than s2.

LexNumCmp::cmp is tested as returning only -1, 1 or 0 but returns the
return value of strncmp directly.  This changes it to clamp the return
value to -1, 1 or 0.

This was another test failure observed on aarch64.