REF : add new top-level ABCs

First pass at re-factoring pims

Added two top-level classes, one for streams and one for sequences

`FrameStream` only grantees that the objects are iterable and have a
minimum amount of meta-data about the images (pixel type and frame
shape).  Objects of this type do not need to be finite, so this is a
suitable class for wrapping cameras and such.

`FrameSequence` (which is a sub-class of `FrameStream`) assumes that
the data is finite and can be randomly accessed.  Sub-classes are
required to do what ever is needed to patch over the limitations of
the underlying container (ex opencv and seeking backwards).  Objects
of this type and be sliced in arbitrary ways as well as iterated over
and randomly accessed.

Minor changes were required to existing classes to fit the minimal API.

Fixed incorrect slicing behavior.
REF/TST : refactored tests

closes #3
Merge pull request #18 from tacaswell/pim_refactor

Pim refactor