Implement indents for printing JSON as per #65

This is quite a big change I know, but indent would be really useful when printing JSON as I asked earlier in #65.

I wasn't sure which branch to submit the pull request to so I've said master, but obviously I can create another pull request to different branch if that would be better.

This change shouldn't alter the default functionality, it just adds the `indent` keyword arguement to `json()` and `JSON.print()`.