Make Block IDs be guids, inject more UI elements into the realtime
code, add the clientid as a realtime parameter and get closer to
support for better atomicity and undo/redo.

Fixes issue 209
We now generate (hopefully) guids.  I use lowerlace
rather than "GUID", since the latter has a spcific standard format
that I'm not using.

Updates issue 195
We're a little closer to support for greater
atomicity.  Unfortunately, a naive use of the Goodle Drive Realtime
compound operations uncovered an issue where realtime events were
getting re-ordered. See the comments in Blockly.Realtime.doCommand for
a little more detail.

Update issue 192
We're getting closer to undo/redo support.  There are
still some issues around atomicity of undo which can be fixed with
either a change in how the underlying Google Drive Realtime compound
operations work or by doing some explicit modeling of the undo stack
by our code.

R=neil.fraser@gmail.com

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

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