This is the first step in adding collaborative editing support to
Blockly using the Google Drive Realtime API.  This checkin provides
the basic functionality but there are some known bugs and missing
features, so the code to actually enable and use the realtime support
is commented out in tests/playground.html.

The basic mechanism for the realtime support is to generate and
maintain the XML dom code for all top level blocks into a
collaborative strting which is synced by the Realtime API when they
change.  Block moves are similarly synced by maintaining the relative
X and Y positions of the top level blocks.  The devil is in the
details, of course.

The only visible API change to developers using Blockly is the
replacement of the Blockly.Block() constructor with
Blockly.Block.obtain().  We needed to abstract the function used to
create new blocks because the Google Drive Realtime API requires using
their own function to create objects with collaborative fields (as
Blockly.Block now has).

You can find a version of this code (except with the realtime
collaboration feature enaled) at
https://blockly-realtime-collab.appspot.com/static/tests/playground.html

R=neil.fraser@gmail.com

Review URL: https://codereview.appspot.com/41420043

git-svn-id: http://blockly.googlecode.com/svn/trunk@1614 c400ca83-b69d-9dd7-9705-49c6b8615e23