19810 proc confines

The confines use === for comparison which in Ruby 1.9+ resolves to
call(value) in Proc objects, this allows them to be used in all Ruby
versions.

Redone pull #407 against 1.7.x