Rewrote BlockShape completely and edited most of the EditShapeWindow
classes and NewShapeWindow classes.
Fixed Issue #18, #17 and #9.
Waiting for code review
Fixed a small bug:
When clearing the build panel in EditShapeWindow, even if the build
panel is dirty, the user still can't save an empty shape