Data-E in JSON

This is a definition of JSON syntax for Data-E.

It was created around 2009-01-07 due to interest in using CapTP in Cajita systems, with a JSON syntax for the message/serialization layer.

Except for literals and that it uses tuples with string tags instead of TermL tagged terms, it is exactly the same as the Data-E in TermL format as implemented by deASTKit.

It is being implemented as part of User:Kevin Reid's GSoC project, caja-captp.

Atoms
The atom types are String and float64, which are copied as-is into the JSON structure. Integers are not atoms and must be handled by an uncaller, since JavaScript-based JSON implementations will not preserve int/float distinctions or the values of integers that don't fit in float64. Characters are not atoms and must be handled by an uncaller.

Literals (old design)
String literals are copied as-is into JSON (rationale: compactness, readability). Characters are tagged since JSON does not have character values. Integers are tagged and written as strings since JavaScript-based JSON implementations will not preserve the values of integers that don't fit in float64.

justify or remove tagging of float64.

review what base/format to write integers in. In particular, if there is such, it should be readily convertible to a the format used by some big-integer-in-JavaScript library.