Cover an edge case of attributes() ignore the class attr_accessor for Entity

If an entity class has both attributes (defined with attributes() DSL) and its own attr_accessor
the attr_accessor should be initialized upon the contruction of the object.

Besides, a change in attributes() DSL constructor to raise exceptions when an invalid attributes is assign
through constructor params
@jodosha it is used ;). In fact it is the whole purpose of this PR. The problem is that `attributes()` generates dynamic constructor that is _different_ to the default constructor. The default constructor also call accessor methods _if_ the constructor params includes accessor key-pair. This behaviour is missing in `attributes() DSL` constructor. Thus the very existence of line 24 is to test that case.