rename valueAsString to toString
WIP commit
introduce ClassProperty that expects Type to be Class with toString() and static fromString() method
add abstract fromString() method to ValueProperty
add regex utility methods
...
add toString() and fromString() methods to ValueProperty