Fix custom coercion for support idempotent between `valid?`

Hi.

Please review?
thank you.

Closes #33 
```ruby
class Foo
  attribute :bar, type: Integer
end
# with !nil_value?
f1 = Foo.new({})
f1.bars # => nil
f2 = Foo.new(bar: '')
f2.bars # => 0

# with !blank_balue
f1 = Foo.new({})
f1.bars # => nil
f2 = Foo.new(bar: '')
f2.bars # => nil

In Lotus's philosophy, which is better?