RandomForest implementation

Squashed commit of the following:

commit 60de4f47ff26267aaad7c38af6cdfaa7e5531adb
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 17:11:31 2014 +0100

    RandomForests

commit 84ff62946d09cb315bd1c5c1d3fd01b4cd558e1b
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 16:42:13 2014 +0100

    RandomForests are working

commit 1b416e4cf3fd1eb80cca12e006bb171595c5566a
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 16:19:44 2014 +0100

    Debugging output

commit 4aecee05aad5df6b0376fdd7745df768bb50cd2b
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 13:53:55 2014 +0100

    Just before I delete something...

commit 4be11cf7383c2ce4c6454eece0b3ba3af223f082
Author: Richard Townsend <richard@sentimentron.co.uk>
Date:   Fri May 9 13:50:42 2014 +0100

    Instances: utility methods to support bagging