Make leading zeroes optional in the string passed to HexString.toLong

- applies to the individual colon-separated byte components of the string
- for example, you can now use "1:2:3:4:5" instead of "01:02:03:04:05"
- also added back the unit tests for HexString and added some new tests