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).
We don't use explicit `this->` qualify as a matter of course elsewhere.

I'd also argue for using `did_` as the parameter name in such cases, as we do elsewhere.