Allow satisfied? to be specified in a block

Instead of overriding #satisfied?, Requirement subclasses can specify
the condition in a block:

  satisfied do
    some_condition?
  end

The contents of the block are evaluated in the context of the instance,
and so have access to instance variables and instance methods as before.
Additionally, it is wrapped in an ENV.with_build_environment block. This
can be disabled by passing :env => false to satisfied:

  satisfied :env => false do
    some_condition?
  end