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).
The last is rather nonsensical as written.  Putting the `..` after the `$(top_srcdir)` would make some sense:

```
-I$(top_srcdir)/../xapian-core/include
```

But this needs to build out of a tarball, and in that case it shouldn't pick up random headers from other sibling directories.  If it isn't finding xapian-core headers via `xapian-config --cppflags` then there's a bug in xapian-config or how it is being used here....