Almost finished refactoring. #34.  Also:

* now using datetime.datetime objects throughout
Using list for channels instead of dict
Some more light refactoring.  Closes #34