first round of refactoring

Hi Kyle,

This is my first ever pull request, so I'm not sure I'm doing everything right.

I started out just trying to make everything pep8 compliant, but I quickly realized I was going to have to break apart the shell commands. From everything I've read, calling subprocess commands with shell=true should be avoided whenever possible.

I also opted to avoid using os.chdir() and instead used commands from os.path so we could operate on absolute paths.

Finally, I added an option to just call neg23 without any arguments and just have it do "directory mode" on the current directory.

Anyway, when you get a chance, take a look at the code and let me know what you think.

Thanks!
Evan