[WIP] Initial use of SampleSet in PathMovers

Provides new versions of `PathMover`s which use `SampleSet` objects as input, and new version of the bootstrapping calculation which also does the same. My suggestion is to merge this in as soon the tasks below are complete (which should include all aspects in the test suite); other moves/calculation types can be fixed up in future PRs.

This is waiting on PR #97. Work in that is required for this, so we should finish that PR first.

Task List:
- [ ] Finish #97
- [x] Modify ShootingMovers to use `SampleSet`
- [x] Modify bootstrapping calculation to use `SampleSet`
- [ ] Include storage of the `SampleSet` as part of the calculation

Extra stuff I included:
* New `EnsembleHopMove` (also to be used in SRTIS)
* New `BootstrapPromotionMove`, which shows how to string several moves together into a more complicated move
* Some tests for `PathMover`s (in progress)