Rishabh & Parth 2012 xapian-letor work

Refactoring on which subsequent GSoC work is based.

Also includes implementations of ListNet & ListMLE which have since been discarded due to possible licensing conflicts (this is noted in the source code in these commits).
There are no virtual methods, so no reason to have a virtual destructor.