Fix formatting
Fixed: UTF-8 error

Previously the input to os.walk was passed as a string object, which raised an exception if the filename was encoded in UTF-8.

This commit fixes this problem by casting all filenames first to UTF-8 before performing the directory walk.

Also includes several unit tests for checking this behaviour
Formatting
Updated tests
Formatting
Updated gitignore