added and tested pairwise
- updated the move func to use it, wrote a small test suite against that
- added a function called pairwise and gave it a factory, not so sure about the factories
- had to copy the list for the precondition check in move, will need to update this
- rest of the APi needs to be updated with the factory concept
commit for Geoff
Merge branch 'justins_feature_branch' of https://github.com/NavalOrange/LinqALike into justins_feature_branch