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 don't think the `or` is needed here - you already have an early return for empty string above.