Implement framed embedding support.

This commit supports a special user "frame.pencilcode.net":
loading code into this user will disable all the normal top UI
as well as saving functionality; and it will just show the
two-pane view with an editor and run panel, bare.

Embedding is supported by a client script pencilcodeembed.js.
Added two way communications between embedding frame and PencilCode frame using postMessage().
Added onDirty event to travck changes to code editor.
Significantly improved test and fixed bugs.
Edited help text and added example.
Removed tagId. Improved validation of the child to parent message authenticity. Incorporated code review suggestions.
Added getCode() method.
Changed event style from pce.onLoaded = function(){...}; to pce.on('loaded', function(){...});.
Added on('error', ...) callback. Found and fixed an error in the test.
Tweak embedding API and rationalize trailing \n.

- On PencilCodeEmbed, rename past-tense event names "loaded" to
  present-tense "load", etc.
- Add more detailed unit tests that pull apart event sequencing, and
  adjust firing of the "update" event to match the test.
- Rationalize handling of trailing "\n" so that the editor always
  ensures a last line ending with "\n" even on initial load.
- Adjust embedding API so that write-only methods can be chained.
Improve run-button feedback by adding 1ms delay.
Merge pull request #64 from PencilCode/runfeedback

Improve run-button feedback by adding 1ms delay.
Merge pull request #63 from PencilCode/framed

Implement framed embedding support, to enable applications such as embedding in an EdX lesson.
Merge branch 'master' into template

* master:
  Improve run-button feedback by adding 1ms delay.
  Tweak embedding API and rationalize trailing \n.
  Added on('error', ...) callback. Found and fixed an error in the test.
  Changed event style from pce.onLoaded = function(){...}; to pce.on('loaded', function(){...});.
  Added getCode() method.
  Removed tagId. Improved validation of the child to parent message authenticity. Incorporated code review suggestions.
  Edited help text and added example.
  Significantly improved test and fixed bugs.
  Added onDirty event to travck changes to code editor.
  Added two way communications between embedding frame and PencilCode frame using postMessage().
  Implement framed embedding support.

Resolved Conflicts:
	site/top/src/editor-main.js