edit properties of multiple objects

- added clone function to shapes
- corrected copy function on shapes (was incorrectly copying the style
object)
- property now handled multiple objects, if a value is inconsistent it
will appear as -----
- added allowMultiple option for properties (by default it's true), this
is set to false for names, because multiple objects cannot have the same
name.
- when picking an editor for a property, find the editor that all
object's properties support (the lowest common editor)
- TextPropertyEditor show's inconsistent values as ----
- ListPropertyEditor show's inconsistent values as blank
- updating a style property also refreshes the shape list