StackOverflow on compiling circular constraint annotations #36

* refactoring
* ensure uniquing of default constraint instances
 Redesign default constraints as EntityConstraint's #37