break common up into separate modules

based on what @mourner said in #78, this is the first idea for modularizing the code, I've broken the common module in to a huge number of modules, so now I'm going to go through and have files only require the sub parts they want, not ready to merge yet