* Improve dirscanner performance and reduce system calls
* Break up one liners
* Rename functions and add typings
* yield from instead of looping
* Fix optional typing
* Replace threads with asyncio
* Use full module path
* Replace list comprehension with for loop
* Give other coroutines a chance to run if we ignore a path
* Remove uncesserary unnecessary asyncio.sleep on skipped path
* Catch and report all exceptions within the scanner task to the user to ensure the overall scanner task cannot crash
* Log traceback