Demo uses bare API
Remove preserveCanvasContents option
Remove numShapes(); fix some event args; document stuff
snapshotLoad event
Remove trailing whitespace
Remove boundingBoxHeight
Whitespace removal brigade
Merge pull request #176 from irskep/updates-from-docs

Bug fixes and tiny changes from working on docs
Simplify subscriber API
Merge pull request #177 from irskep/fix-subscriber-api

Simplify subscriber API
Remove includeWatermark option from getImage
Merge pull request #178 from irskep/remove-getimage-watermark

Remove includeWatermark option from getImage
Every shape gets a GUID
LinePath and ErasedLinePath store data much more efficiently
saveShape() can save shapes below other shapes, and avoid triggering the event
shapeSave event includes afterShapeId
afterShapeId -> previousShapeId