Refactor instrument communications

This pull dramatically cleans up the instrument communications classes, as well as unifies debugging and logging support. While this will unfortunately break some things, I'd like to bring in the pull before working on any new instrument communications classes, such as those a pure-Python USB-TMC communicator (#26).