Moved scanning to background thread

Ugly at the moment, but typing now begins IMMEDIATELY :D
got rid of a single misplaced indent.

was causing more annoyance than actually affecting the program as a
whole.
oh shit broke something
Revert "oh shit broke something"

This reverts commit 8cd9f3f21df0c7c91965a071fce8d2780ef18801.
Fixed bug in implementation of threading

The existence of a cache (from a previous commit's feature) hid a bug in
the implementation of threading!  The execution of self.clear_screen()
immediately after that branch hid a number of useful error messages,
which made debugging quite annoying. Fixed bug in threading
implementation with some ```python @staticmethod``` black magic.
Removing commented out code
Clarified documentation; Removed unused code.

Wrote detailed documentation on threading implementation. Since caching
is no longer easily implemented, or for that matter, relevant - all
caching code removed.
_recurse_to_list(...) no longer returns

_recurse_to_list neither operates on a list nor returns a list, this is
a relic of the single-threaded implementation.
renamed _recurse_to_list

Now accurately reflects the actual nature of the function.
Removed unused code; clarified comments.

Reworded comments to be more explicit about `IOError`s problem-causing
potential.
Minor comment change.
Merge pull request #2 from ariccio/Dev

Dev - I agree with myself (surprisingly)