Uses multithreading.Process instead of GLib.timeout_add()
The moment I finished writing this part, I found out the only problem
with my previous commit was that I had setup the timeout _after_ calling
the blocking function wait_for_change instead of before it.
Although this version (with Process) works, I'm reverting to the
previous version and swapping the two lines (which I had tested and
found to work)
And in case you have read upto the previous line you should also know I
fixed some code in the README
TL;DR: I have proven once again I am an idiot