Box raises property event.

Cylinder raises property event.
Cylinder has Guards on resolution properties, to give early feedback if parameter is invalid.
Previous commit with cylinder
more primitive with change events

Grid and IcoGrid guard for invalis resolution
Fix silly error on validation

Add guard to dispatcher
Null geometry guard for negative values

Octahedron expose change events
More primitives with guards and events
Finish geometry rewrite