Implement Validations#each and remove #attributes

We have recently introduced `#attributes` in #21. This method used to return a Hash representing the defined attributes (as symbols) and their corresponding values. This was trying to solve a problem about bulk operations on encapsulated data.

The problem with this approach was to encourage developers to manipulate data directly, increasing the Primitive Obsession in applications.

```ruby
class Signin
  include Lotus::Validations

  attribute :email
  attribute :password
end

signin = Signin.new(email: 'user@example.org', password: 'shhh')
signin.attributes.each {|attr,value| ... }
signin.attributes.count
signin.attributes.size
signin.attributes.empty?
# etc..
```

This is a bad style and a clear sign that the API offered by `Lotus::Validations` wasn't good enough.

With this proposal, we're dropping `#attributes` in favor of `#each` as API for bulk operations. It yields the name of the attribute (as a symbol) and the corresponding value.

We keep around `#to_h` as an idiomatic Ruby way to explicit conversion protocol to Hash.

This two methods should guarantee encapsulation, bulk operations and conversions.

```ruby
class Signin
  include Lotus::Validations

  attribute :email
  attribute :password
end

signin = Signin.new(email: 'user@example.org', password: 'shhh')

signin.each do |name, value|
  # ...
end

signin.to_h # => { :email => "user@example.org", :password => "shhh" }
```

Closes #25