Rename device gate to digital because it's the new digitl devs. Also rename threading to threads to prevent python name clash.
fix device set to be instance unique instead of shared among the class instances.
Add base port class to device for abstract port.
Add digital and analog instances of the port and channel devices.
Add tools module.
Update the threads module with the changes.
Add clock changes.
Add unicode and bytes type to compat.
Cleanup stage base.
rename stage recover to recover_state.
Update factory registres.
Remove canvas from stage after kivy is done with it.