consolidate JSON handling around JSON::MaybeXS, to provide a sane backend everywhere

this PR replaces and closes #1191.


The only problem I see here is that now we don't have any kind of XS JSON parser in the cpanfile, which will be a problem when we deploy to production.