Fix byte-swapped NM tag on big-endian platforms
Fix for reading integers between 2^31 and 2^32-1 on 32-bit platforms.

sam_parse1 uses strtol when reading integer aux tags.  This is generally
OK on 64 bit platforms, but overflowed for values > +2^31 on 32-bit.  This
makes it use strtoul instead if the value does not start with a '-' sign.

It should be noted that the specification currently states these values are
of type int32_t.  But BAM allows uint32_t values, and the 64-bit version
also allowed values > 2^31, so this makes them work on 32-bit too.

This fix is not complete as there is still no overflow checking (also a
problem in other parts of the sam parsing code).