Added toJsonML() methods which leave all values (attribute values and text
nodes) as strings.
For this purpose I overloaded parse() so that all existing toXXX() methods
could remain unchanged and will behave as before.
Merge remote-tracking branch 'jaccob/master' into fix-reversibility