Update to use scandir.walk() instead of os.walk()

This was a performance optimization; when operating on a directory with
lots of files, icanhasfile slowed down, but scandir.walk() seems to be
working much faster than the standard os.walk()