Introduce a raw output format.

Zero manipulation of the token stream.
Mostly for performance testing reasons
Result will be squished together because we don't
insert whitespace between tokens
Minor place to debug unit tests
performance: Avoid duplication of src text in mem

My current understanding of the situation is that

1. Jpl convert Prolog strings (err, atoms) to java.lang.String instances
   (fair enough)

2. Different jpl_calls involving the same Prolog string result in
   different java.lang.String instances and/or different char[] arrays
   underneath them (not sure which comes first)

3. So large strings + many calls + holding on the Strings for any
   reason = out of memory

At first I tried to get around this by wrapping the string in a
java.lang.String, thinking I could pass that as a single shared
reference, but (A) the JPL simply squawked at me if I tried to
jpl_new('java.lang.String') and (B) trying to work around it by
using StringBuffer.toString() merely meant that the JPL would
turn it back into a Prolog atom and we'd be back to square one.

It so happens that the java method we want to call,
opennlp.tools.util.Span.getCoveredText() accepts any sort of
java.lang.CharSequence, so as a workaround we can pass a StringBuffer
instead of a String. Nothing special about that type, other than it
not being String; it's just for that layer of indirection so we can
refer to the same string in memory.