Implement marshaling of arrays and version arrays.

src/json.m:
	Rewrite the marshaling documentation.

src/json.marshal.m:
src/json.unmarshal.m:
	Implement marshaling of array/1 and version_array/1 values.

tests/test_marshal.m:
tests/marshal.exp:
	Include examples of the above in the the test suite.
Implement unmarshaling of bitmaps.

src/json.unmarshal.m:
	As above.  (Marshaling of bitmaps was added in an earlier commit.)

tests/test_marshal.m:
tests/marshal.exp:
	Add a test of marshaling bitmaps.
Add a function for converting JSON values into strings.

src/json.m:
	As above.
Support converting strings to JSON values.

Fix a bug in the lexer.

src/json.m:
	Add from_string/2 which parses JSON from a string.

	Add det_from_string/1 which is a det version of the
	above.

src/json.string_reader.m:
	A simple string reader stream used to implement the above.

src/json/json.lexer.m:
	Fix a bug: do not return EOF if we read a number that
	is immediately followed by EOF, return the number we
	just read.

tests/test_marshal.m:
tests/marshal.exp:
	Extend this test to cover converting JSON to and
	from strings.