Merge pull request #184 from Muon/master

Node/edge attribute dict getters, inspection, fixes
Merge pull request #188 from Muon/master

Edge attributes from dicts
Merge pull request #191 from Muon/master

Add Tic-Tac-Toe example
Merge pull request #193 from Muon/master

Clone reporter and pull from upstream
Merge pull request #197 from Muon/master

Fix snapClone() over Lists, clickstreams in localStorage, save event logging
Merge pull request #206 from Muon/master

Dict infinite loop fix, Tic-Tac-Toe interaction, project UUIDs
Merge pull request #209 from Muon/master

Deprecate 'clear graph', add missing file
Merge pull request #211 from Muon/master

Sentence generation, layout menu label, graph import attribute fix, node position control
Merge pull request #215 from Muon/master

"New node" reporter; show ID in context menu
Merge pull request #222 from Muon/master

Remove need for node labels
Fix 'set edge attribs' block parameter to use edge field for edge
Simplify builtin attribute handling
Clarify block UI attribute name-getting methods

There was some possible confusing with getNodeAttribDict() and
getEdgeAttribDict()
Really use d3.selection.text() instead of setting textContent
Improve error handling for (non)existent nodes/edges
Fix brace style
Improve node attribute handling

Node attribute handling is now separated out into its own structure.

Setting color and scale will no longer reset the layout. Also, it is
now possible to use the attribute interface to examine and modify the
position of nodes, with similar behavior to mouse movement.
Properly test the definedness of attr defaults
Fix erroneous usage of 'this' instead of 'myself'

This should deal with #217.
Improve edge attribute handling

Edge attribute handling now lives in a similar structure to node
attribute handling.

This fixes the previously broken updating of the width of edges.

Furthermore, setting the color of edges will no longer reset the
layout, and neither will setting the width of edges.