added property validation

- added a validation function for values (e.g. check for a unique name)
- added regex match strings for data input
- internal shapes given unique names
- can edit the name of a style