New test that demonstrates ERRAI-339: Marshalling an array on its own (not as a member of another portable class) doesn't work

This test is presently disabled because we do not yet have a fix for it (but we have ideas for what to try next)
Code review: pulled up some functionality into AbstractMarshallingSession. Reduces several cut-n-pasted code chunks.
Attempt at eliminating the need for special generated array marshallers.

This is SO CLOSE to working: all we would need is a way of getting the GWT typeid of the array
we want to create. Then we can use JSNI to call Array.initDims() and we're done!
In that case, we would also want to remove all the code and logic responsible for generating
array marshallers. This would shrink both the javascript payload as well as Errai's marshaller
generator complexity.
Remove short-circuit that shouldn't have been committed
removing unused automarshal method
Merge branch 'on-demand-array-marshallers' of https://github.com/errai/errai
Fix for ERRAI-339: Support for marshalling arrays on their own
Merge branch 'master' into 2.1

Conflicts:
	errai-codegen/src/main/java/org/jboss/errai/codegen/Context.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/api/AbstractMarshallingSession.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/api/Marshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/AbstractBackReferencingMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/BooleanMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/ByteMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/CharacterMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/DateMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/ErraiProtocolEnvelopeMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/ErraiProtocolEnvelopeNoAutoMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/FloatMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/LinkedMapMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/ListMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/MapMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/PriorityQueueMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/QualifyingMarshallerWrapper.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/SetMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/ShortMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/SortedMapMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/SortedSetMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/marshallers/StringBuilderMarshaller.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/client/util/MarshallUtil.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/rebind/api/impl/defaultjava/DefaultJavaMappingStrategy.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/server/DecodingSession.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/server/EncodingSession.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/server/MappingContextSingleton.java
	errai-marshalling/src/main/java/org/jboss/errai/marshalling/server/marshallers/DefaultDefinitionMarshaller.java
Adding support for java.util.Date in JacksonTransformer
Fix for ERRAI-338: bean lookups using extended interface types
Merge branch 'master' into 2.1

Conflicts:
	errai-cdi/weld-integration/src/test/java/org/jboss/errai/cdi/injection/client/test/BeanManagerIntegrationTest.java
	errai-ioc/src/main/java/org/jboss/errai/ioc/rebind/ioc/injector/api/InjectionContext.java
minor refactoring: renamed local variable name
Merge branch 'master' into 2.1
data-binding: support for forcing an update of all bound widgets in case the model changes were not visible to the proxy (e.g direct field access)
Merge branch '2.1' into jpa, for new data binding integration
Partial data binding compatibility for JPA (persistence works now, but the data binding proxy does not yet see changes to the entity)
data-binding: use converter utility when synchronizing state
Merge branch '2.1' into jpa, to get data-binding fix
New fix for jpa/data-binding integration: let the private field accessors do the unwrapping

This allows most of the Errai JPA code to deal with the proxy, and defers the unwrapping until the last possible moment.
The advantage is that we retain access to the proxy in case we need to call the updateWidgets() method on it.
Switched to recording lifecycle events in a static list. This uncovered a bug in the ID generators, which is now fixed.

The bug was that the when the ID generators probe to see if a given ID value is already in use,
and it is, this causes the entity using that ID to be loaded into the persistence context and
its PostLoad callback to fire. Now the ID generator probes don't cause these side effects.

I also fixed a different bug in the BigInteger ID generator: it was incrementing the ID before returning it,
which could lead to an ID collision if for example it finds ID 123 to be free, but ID 124 is in use.