add a #:pre keyword to define-metafunction

The keyword allows the specification of contracts
that relate different arguments

closes PR 13617