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
@joneslee85 This was added, but never used. What's the purpose?