Add a FactDecoder

* Remove the fact( and ) from the toString on a Fact
* this yields a CSV like encoding which is reasonable if
  ONLY the objectValue can contain comma and newline.