Use python logging framework consistently

This is basically a forward-looking commit. Currently some modules use logging, some dont, some use 
print, etc. This just standardizes us on python's logging and provides enough logging code to allow 
people to have an idea of what is expected from their additions

Replaces `--verbose` flag with `--add` flag

I'd propose some minimal guidelines for logging: 
* Use info to report standard, expected system operation e.g. method entry
* Don't use info on methods you expect to be called more than 10 times (e.g. get_foo())
* avoid re-writing code just to add logs e.g. don't add `else` statements just to log

Obviously these are just some general thoughts, feedback welcome