* Added a convention test to detect a model constructor exposing all properties
* add ctors to classes where they are missing
* rename ctor parameters that dont match properties
* add missing parameters to existing ctors
* add specific PunchCard ctor to allow mocking, and update test to resolve call ambiguity
* Added base class properties to the convention test
Added member exclusion attribute
* Updated newly offending classes
2 excludes and 2 ctors
* rename exclusion attribute to be a bit shorter
These methods actually returned mutable collections that happen
to implement the readonly interfaces. User could cast them to
the actual type and add things. I'd rather avoid even that
possibility by making these truly return readonly stuff.