add brief documentation of options to plugin definition
move assignType nearer to other functions for altering items
switch option handling to a private var inside the module closure, and then simplify the main JSONEditor constructor
new constructor function: shuffle around creation steps, for objects/arrays show buttons to add children (rather than encoded value), no longer requires options as an argument, create elements on an "elements" object, rename root->root_el for clarity
new general event handler for clicks on title row of objects/arrays: handles expander clicks as well as "add item" and "add object" buttons
new plugin support: allow an onDrawProperty handler for each time a key/value item is drawn (to enable custom output for certain items)
new renameProperty method based on feed(); TODO: rename/simplify feed() since it's now only altering values
tweak addExpander to allow custom classnames (and don't set an event handler because of the new general click handler); add an expandAround method for use when redrawing the whole tree around an edited item
modify propertyChanged and valueChanged to redraw everything on an edit, not just the changed bits; also, no longer outputs values with quotes ("foo"). As a result: def(), stringify(), parse(), updateParents() aren't needed anymore