More efficient batch_parse for MaltParser

This commit makes MaltParser parse in batches so the binary doesn't have to be executed and the model doesn't have to be loaded for each sentence.

Tested with the following code:
Results are the same except for the batch_parse time being halved.

```python
import nltk
import timeit
print timeit.timeit('graph = parser.parse(txt)', 'import nltk; parser = nltk.parse.malt.MaltParser(working_dir="<working_dir>", mco="engmalt.linear-1.7", additional_java_args=["-Xmx512m"]); txt = nltk.tokenize.word_tokenize("This is a test sentence")', number=1)
print timeit.timeit('graph = parser.batch_parse([txt, txt])', 'import nltk; parser = nltk.parse.malt.MaltParser(working_dir="<working_dir>", mco="engmalt.linear-1.7", additional_java_args=["-Xmx512m"]); txt = nltk.tokenize.word_tokenize("This is a test sentence")', number=1)
txt1 = "This is a test sentence."
txt2 = "The cat ate the mouse."
txt1_tok = nltk.tokenize.word_tokenize(txt1)
txt2_tok = nltk.tokenize.word_tokenize(txt2)
parser = nltk.parse.malt.MaltParser(working_dir="<working_dir>", mco="engmalt.linear-1.7", additional_java_args=["-Xmx512m"])
graphs = parser.batch_parse([txt1_tok, txt2_tok])
print graphs[0].tree().pprint()
print graphs[1].tree().pprint()
graph = parser.parse(txt1_tok)
print graph.tree().pprint()
graph = parser.raw_parse(txt1)
print graph.tree().pprint()
```