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.