assume string is already decoded in favor of using string_decoder

More flexible for the user if they already have the string being decoded
elsewhere. Also improves performance.
keep track of 'soFar' buffer as a string versus array

Performance improvement