Intial work on SequentialEnsemble, incl tests
Draft for SequentialEnsemble.__call__.

Also includes InXEnsembles.__str__()
Further work on tests, esp. for SequentialEnsemble.
Added tests for minus_ensemble append/prepend.
Slow progress. This algorithm is difficult.
SequentialEnsemble.can_append passes tests.

Holy crap that was hard. Fortunately, with this as the template, the rest
should be easier.
Rewrote SeqEns call based on can_append. Passes.
More and cleaner tests for SequentialEnsemble.

* refactored in_out_parser() so it can be widely used
* added tests of __call__ with SequentialEnsemble as TISEnsemble and as
  MinusEnsemble
SequentialEnsemble.can_prepend passes tests.
Added __str__ and tests.

There's a problem in one of the other __str__ functions. This currently
passes its test, but the hardcoded results aren't what I would have
intended.
Significant cleanup of testensemble.py.

Now it should be really fast to write tests for new trajectory types. This
is really cute, actually.
Fixes for trajs with c-type frames.
Merge remote-tracking branch 'upstream/master' into sequential_ensemble

Conflicts:
	code/python/PySRMSTIS/src/ensemble.py
Added tests for LeaveX, InX.
Tests for OutX and HitX.
__str__ tests for VolumeEnsemble subclasses.

And yes, they all pass.
Separated identification of transitions from call.

Now we first identify where the transitions are, then check that each
subtrajectory is in the required ensemble. This is necessary for ensemble
such as LeaveX/HitX where the can_append condition is not equivalent to the
in-ensemble condition.
Merge remote-tracking branch 'upstream/master' into sequential_ensemble

Conflicts:
	code/python/PySRMSTIS/src/ensemble.py
Support for 0-len traj; new minus def works.

Tests pass. I think this is ready for check-in.
Merge pull request #36 from dwhswenson/sequential_ensemble

Merging... Sequential ensemble... Yeah