Removed unused GetReportDef command
Performance: avoid unnecessary round trip to database for User entity

We are already caching the user's identity along with the auth token,
so no need to refetch.
Spike for calculated indicators
AI-438 : added expression to indicator definition

Conflicts:

	server/src/main/java/org/activityinfo/i18n/shared/UiConstants.java
	server/src/main/java/org/activityinfo/server/database/hibernate/entity/Indicator.java
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.
AI-438 : specify indicator technical expression via legacy ui

Conflicts:

	server/src/main/java/org/activityinfo/core/shared/table/TableColumnDataBuilder.java
	server/src/main/java/org/activityinfo/i18n/shared/UiConstants.java
	server/src/test/java/org/activityinfo/core/shared/table/MainColumnViewProviderTest.java
Added gwt specific datamodel module for emulation sources
Renamed DataRecord -> DataRecord, moved to datamodel.record package
Removed unused HashCode/HashCode interfaces

We won't be able to use hashes for version identity as some clients will not have permission to view
all fields on an instance and so will receive a different hash value.

I think we will need something closer to vector dot clocks for version numbers.

Conflicts:

	server/src/main/java/org/activityinfo/core/shared/form/FormClass.java
Removed SerXX classes, to be replaced by Record interface
Replaced SelfKeyProvider with gwt-provided SimpleKeyProvider
Started to integrate Record model and FormClasses

(Small Step) Replaced core.shared.Cuid with datamodel.shared.Cuid

Conflicts:

	server/src/main/java/org/activityinfo/core/client/InMemResourceLocator.java
	server/src/main/java/org/activityinfo/core/shared/expr/Placeholder.java
	server/src/main/java/org/activityinfo/core/shared/table/provider/CacheKey.java
	server/src/main/java/org/activityinfo/core/shared/table/provider/CachedColumnViewProvider.java
	server/src/main/java/org/activityinfo/core/shared/table/provider/CalculatedColumnViewProvider.java
	server/src/main/java/org/activityinfo/ui/client/component/form/model/SimpleListViewModel.java
	server/src/main/java/org/activityinfo/ui/client/inject/AppModule.java
	server/src/main/java/org/activityinfo/ui/client/page/entry/form/SiteRenderer.java
	server/src/test/java/org/activityinfo/core/shared/table/MainColumnViewProviderTest.java
	server/src/test/java/org/activityinfo/ui/client/page/entry/form/SiteRendererTest.java