JDK6 runtime support for json

Warning: the backported try-with-resources are not pretty
rethrow `IOException` without wrapping

(I leave this as a reminder, I will merge as is and then will return to these lines)