First version of datamodel code

This introduces the DataRecord, which is intended to be a layer
of abstraction lower than the FormInstance.

The idea is that we have a common structure for both Instances,
which have identity, as well as record-type structures such
as lat/long, date ranges, and other complex types.

The implementation here allows seamless use of the DataRecord-based
types across server/client. On the client, they are implemented
with JSOs and so "disappear" during compilation.

Because they are normal javascript objects, they can be painlessly
sent between main thread/worker, and stored in the indexeddb.

The other important element is the DataRecordBean generator, which
allows you to define interfaces like:

interface FormClass {

  Cuid getId();
  String getName();
  void setName();

  List<FormElement> getElements();
}

and use them on both client/server and get JSON-serialization
"for free" on the client, as they are really just plain old
javascript objects.

There is still some implementaiton to finish, but hopefully
we can begin to migrate a whole range of types to this
foundation and start to make real improvements to offline mode.