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
Please ignore my comment above, the current spec:

```ruby
it "raises an error when the given attributes don't correspond to a known accessor" do
  -> { Camera.new(digital: true) }.must_raise(NoMethodError)
end
```

already cover this