Uniqueness validation uses a proc to specify the `:conditions` option.

This is a follow up to #5321 and follows the general direction in AR to make things lazy evaluated.

Open points:
* Do we need a deprecation for the old syntax?
* Do we need to support the old syntax?