MLT Query: Support for negative examples

Adds a `unlike` parameter to the MLT Query, which simply tells the algorithm
to skip all the terms from the given documents. This could be useful in order
to better guide nearest neighbor search by telling the algorithm to never
explore the space spanned by the given `unlike` docs. In essence we are
interested about the characteristic of a given item, but not of the ones
provided by `unlike`, thereby forcing the algorithm to go deeper in its
selection of terms. Note that this is different than simply performing a must
not boolean query on the unliked items. The syntax is exactly the same as the
`like` parameter.
Is the fetch servie smart enough to do a single request if two docs are on the same shard? If yes, I think it's worth it.