added ntriples writer

Added ntriples writer.
this seems to be a bit wasteful on memory. The main writer methods use `java.io.{OutputStreing, Writer}`, which allows for streaming of the output. But this constructs the whole output in memory, then flushes that in one go. So as a result double the amount of memory needs to be used. It would be more reasonable to leave it to the output stream or writer to decide how much to buffer before flushing, and then to write a triple one by one to the writer. In the case of toString the memory has to be used all at once, but that cannot be avoided there.