Modules are files that hold objects

At its simplest, a module holds one object. This might be how the Store
Manager stores objects on disk.

As an optimization, you could store several objects in one module.
Especially small simple objects, like atomic variables.. these could be
stored in a simplified format.

Going further, you could have platform-independent modules. These are marked
in the module header. They contain source code or bytecode, and possibly
optimized machine code for certain platforms.



Object format on disk:
	field		bits	description
	-----		----	-----------
	size		32
	temporary	1
	[saved]		1	(Available)
	type		6
	matrix info	varies
	Name length	8
	Name		varies

Object format in RAM:
	size		32
	temporary	1	Don't write to disk unless RAM gets full
	saved		1	If a copy exists on disk
	type		6	(For atomic types)
	matrix info	64+	(only if type=matrix)
	Name length	5-8?
	Name		32-255 bytes

Type field:
	Basic type [2 bits]
	  Number:
	    int/float				[1 bit]
	    data width [# of bytes]		[2 bits, for 8/16/32/64-bit]
	    Matrix (array)			[1 bit]
	  Character
	    Matrix (string)			[1 bit]
	  Object/function
	    Matrix				[1 bit]
	  [1 bit left over for another type..]
Bits required:
	Worst case: Number, 6 bits
	Best case: Object, 3 bits
Questions:
	Do we need complex & rational numbers? They should probably just be
	built from ints/floats
Bit field format:
	TTMnWW
	------
	TT = basic type (2)
	M  = matrix (1)
	n  = number type, int/float (1) 
	WW = data width (2)

Matrix info (only if type=matrix)
	# of dimensions
	# of rows
	# of columns
	...

