“space” option to enable pretty printing (same as JSON.stringify)

Allows for a new `space` option, similar to what the original `JSON.stringify` supports.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

> The space argument may be used to control spacing in the final string. If it is a number, successive levels in the stringification will each be indented by this many space characters (up to 10). If it is a string, successive levels will indented by this string (or the first ten characters of it).

For example:

```js
var obj = { b: 1, a: { foo: 'bar', and: [1, 2, 3] } };
console.log(stringify(obj, { space: '\t' }));
```

which outputs:

```json
{
	"a": {
		"and": [
			1,
			2,
			3
		],
		"foo": "bar"
	},
	"b": 1
}
```