ENH: Added copy of cns.channel to package

As this package is meant to eventually replace much of the core functionality
of the neurobehavior package that is generic enough to be used by other labs, I
am slowly copying relevant code over as I find a need for it.  I cleaned up the
file and applied PEP8 fixes before commiting, but did not change any
algorithms.
ENH: Added EpochChannel to support epoch-based DAQ

The original code was written around the expectation that data acquisition
would be continuous throughout the experiment.  This is not always the case.
Sometimes we want to do epoch-based acquisition to save disk space and simplify
analyses.
ENH: Added icon_dir variable to experiment package