Support Non-ASCII Characters and Large Files

Using runes instead of bytes to count the number of characters will allow support for properly detecting non-ASCII characters.
Using a scanner to read the file line by line rather than dumping the entire file into memory is more effective for handling large files.

This fixes issues #32 and #33.
Add scanFile() Function

This should increase code readability of the patch.
Merge pull request #34 from mmstick/patch-1

Support Non-ASCII Characters and Large Files