Output classes for Multilabel learning.

I finally managed to get some of my classes committed.  They are needed for the multilabel stuff I will commit soon, but are generic enough to be reused by other multilabel implementations.

The unit tests are quite comprehensive and good examples of how to use the multilabels.