Cover an edge case of attributes DSL's constructor does not behave as the default constructor

The code says better than 1000 words:

```ruby
class Book
  include Lotus::Entity
  attributes :title
  attr_accessor :author
end
```

```ruby
book = Book.new(title: 'hello from Lotus', author: 'Luca')
book.title #=> hello from Lotus
book.author #=> nil
# nil is WRONG!, it's supposed to be Luca
```

The problem lies in the way `attritbutes` construct the object, it does not call accessors that are defined manually by us.
@stevehodgkiss the original code was like that. But you are right, there is no benefits but more convoluted code. I made a new commit which removes it. Please help review.