MLT Query: Support for artificial documents

Previously, the only way to specify a document not present in the index was to
use `like_text`. This would usually lead to complex queries made of multiple
MLT queries per document field. This commit adds the ability to the MLT query
to directly specify documents not present in the index (artificial documents).
The syntax is similar to the Percolator API or to the Multi Term Vector API.
can we also have a test for an error condition. ie. a field can't be parsed, the doc is empty, the doc is malformed etc.