Server push (#111)

* Asynchronous bidirectional communication
* Use Atmosphere as a backend
* Use websockets if available, fallback to HTTP streaming
* Push mode (disabled, manual, automatic)
  * Configurable via servlet parameter pushMode
  * Disabled: The default; regular AJAX communication
  * Manual: Need explicit UI.push() call
  * Automatic: push all UIs in session when lock released
* UI.push()
  * Push pending state and RPC to client asynchronously
  * Must hold session lock when invoking

Change-Id: Idb5978ac81f7ff1e66665df4e3f96e29e4c419d4