Major changes

* Bug fixes
* Code simplification
* Updated KineticGWT to support KineticJS v4.7.3
* Added serialization/deserialization support

// TODO: multi-selection bug is still there, related issues still seem
to be bugs of KineticJS