Completed tests for bag operations.

Moved everything into own package, and completed the tests.
Fixed behaviour of finding intersection types.
Change to handle change in OSBC.
Refactored bag combination code to own routine.

Clarified code by extracting bag combination handling, and made it
possible for some bag combinations to contain other bag combinations.
Made it possible for bag combinations to be recursive.
Added meaningful .toString()
Merge branch 'dev' of github.com:intermine/intermine into dev