feat(jsonFilter): add optional arg to define custom indentation

also change toJson function to accomodate passing in of number of spaces
Not sure I was clear before, so here is what I mean:

Old implementation:

    pretty -> falsy: Create "ugly" JSON.
    pretty -> truthy: Create pretty JSON with 2 spaces indentation.

New implementation:

    pretty -> falsy: Create "ugly" JSON.
    pretty -> truthy:
        pretty -> number (say X): Create pretty JSON with X spaces indentation.
        pretty -> non-numeric: Create pretty JSON with 2 spaces indentation (default).

The `parseInt()` is used for detecting `true` as well as other truthy, non-numeric values (although the latter would be rare).
I agree that it would be probably better to allow the user to pass anything as `pretty` (e.g. custom indentation string) and default to 2 spaces only if `pretty === true`, but it would be a breaking change (in the sense that it would work differently than the previous version for specific inputs).

That said (and since it is indeed not expected to be a critical aspect of anyone's app), if you think we should go with `pretty === true ? 2 : pretty` it sounds good to me.

@doshprompt:
Could you update the PR with the above change ?
It would be also nice to update the docs (for `toJson()` and `json` filter).

--
<sub>
I don't know how we manage to make long pointless discussions on simple things (but somehow we do :smiley:).
</sub>