save methods

Adding three methods to the API:

* saveTable()
* saveJSON()
* saveStrings()

As part of this process, I also worked on the PrintWriter class, which formats output, the writeFile() method, which prompts download, and some more helper methods like escape(). I hope these'll come in handy down the line !
I think that ```this.pWriters.name``` is the object, so it returns the object rather than the name. It just uses the name to identify the object in the ```pWriters``` array. This'll be clearer when it's ```_pWriters```).

Also not sure what it should do if a pWriter with that name already exists, but this behavior (for it to do nothing) was already implemented.