Data.String: bugfix infinite loop in scan()

bugfix infinite loop in scan() when matched
string is empty.
And improve performance.
Merge pull request #83 from deris/bugfix/scan

Data.String: bugfix infinite loop in scan()