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 !
for now, I've made it so that, if a p5.PrintWriter with this name already exists, createWriter() returns a new p5.PrintWriter with millis() appended to the end of its name. The name is based on the filename, if one is provided, and is also used as the uniqueID to delete the PrintWriter when it's done.

This way we could say x = saveTable( table1, 'untitled.csv'); and y = saveTable( table2, 'untitled.csv') at the same time, with the same filename, or even without giving either one a name...