Fix custom coercion for support idempotent between `valid?`

Hi.

Please review?
thank you.

Closes #33 
@rail44 We don't know :) The context that wraps validations in Lotus::Controller is thread safe, so it doesn't matter. However, this is also a general purpose library, so if developers use it alone we should provide a thread safe mechanism.