Refactor role system so that it can load custom roles rather than
only those available in kozo's roles directory. Added logger role.
Updated __main__.py to reflect that fact that the config file is no longer in JSON format
Add logger node to testnet.
Add Bluetooth device discovery role and include it in testnet.
Use threading.Event in order to provide interruptible sleep for roles

This allows Ctrl+C to work as intended, rather than waiting on long
delays due to time.sleep() being uninterruptible.