also quote key names when outputting json

In normal situations when exporting json a key shouldn't need to
be quoted, but sometimes user-provided data is serialised, for example
tags from taglib take both the key and value. On flac files this key
can be user-provided and therefore a bad key can create invalid json
Add optional 'indent' parameter to json output

Indent controls how many spaces are used to indent each
json block. If indent is > 0, newlines and indents are added.
If indent == 0, the json document is output on a single line
Merge pull request #173 from MTG/jsonoutput

Jsonoutput