Improvements to BagOperations.

BagOperations are now classes.
There is core support for asymmetric difference.
Operations are now valid against all compatible types.
Merge branch 'dev' of github.com:intermine/intermine into dev