major reorganization:

 - ditch useless code
 - improve module names
 - start documenting procedures that are too long and complicated
 - use relative imports
get rid of the useless 'patcher' package, moving its contents up a directory level