A nicer CSON.stringify

# CSON.stringify

- [x] have `CSON.stringify` produce safe CSON that looks nicer than native JSON
- [ ] <del>add minimal `json2cson` tool that does the same, given valid JSON or CSON</del>
- [ ] <del>add minimal `cson2json` tool to reproduce JSON, given valid JSON or CSON</del>

Still handles all the same features as `JSON.stringify` does, the same way, including weird inputs.

The main difference between this cson output, and what the `cson` package's json2cson spits out (also what prompted this pull request) are the object literals: this codec always uses curly braces, thus making:

```cson
[
  {
    hello: 'there!'
  }
]
```

instead of:

```cson
[
  hello: 'there!'
]
```

The latter is less safe, explicit, and convenient, for instance when you have some version controlled cson array which starts out with just one huge object in it. Given the cson-safe serialization, when you later add a new object to the array, there won't be a complete reindentation of the first object. And in the case of a human editing it by hand, the mistake of making the two objects actually become just one merged object is less likely to happen by accident.
I understand why you are defaulting to two spaces, but I'd like to opt for consistency here - `CSON.stringify obj, null, 2` might be a bit more verbose but it's how `JSON.stringify` works and less surprising.