Support nested validation

Hi.

In recent, custom `type` validation is added.
However, it is diffcult to tell that given param is unvalid for custom `type`.
If this PR is merge, we can write that like
```
class User
  include Lotus::Validations
  attribute :name, presence: true
  attribute :age
end

class FriendShip
  include Lotus::Validations
  attribute :user, type: User
  attribute :friend, type: User
end
```

Thank you.