Old refactor

This is messy. Sorry. 

There were some very old refactoring code that I failed to merge to master. And when I refactored to make thiings python 3 compatible and to silence pylint (merged yesterday) I touched lots of code.  So there were lots of (trivial) conflicts with this old code.

Unfortunately, I also built a few new features off of the old refactoring branches. So those features have been lingering in a low-priority, but pain-to-merge limbo.

So, what is here?
    1. I partially reimplemented gcmdr mainly as a proof of concept to make sure peyotl was rich enough to do it. It is not terribly useful, but is in its own subpackage, so it won't hurt anything.
    2. I moved to using the @property decorator as opposed to the old fashion property statement
    3. I've started a class that reads OTT and will support some queries. Like the gcmdr stuff, this not terribly functional, but not in the way.
    4. During working on the OTT stuff and gcmdr, I needed a richer interface for dealing with config files. So there are many changes in peyotl.utility to support that.
    5. I migrated the config-dependent API wrappers and phylesystem to use the new config system mentioned in the previous point.
    6. And I started a helper script (clipeyotl.py) that is intended to have lots of commands for manipulating your peyotl installation. Currently just support "config" command to list your config. And an "ott" command (with 2 sub-commands). When that is a little more functional, I'll document it.

I know that it is not good practice to have such a wide ranging set of files and features in one pull request. But having many active branches in peyotl since Sept has gotten really confusing. Merging this will get us back to a sane state. 

I'll avoid this situation again by more linear development (I promise).