Fixes #27 - Fix String::valueFromPrintableHex/bytesFromPrintableHex

The loop now increments the position 'i' only when it needs to (and
not in the event of a non-digit character).

Tests pass 100%.

Replaced for loop with while loop for simplicity and clarity
Merge pull request #27 from caitp/issue-27

[bug] String::valueFromPrintableHex shouldn't increment 'i' when non-digit encountered