Add option to pass an argument to the Riif block

If an argument is provided, uses `yield(self)` instead of `instance_eval`. This allows you to call other local methods without having to grab a copy of self before calling `Riif#new`.

See http://rubylearning.com/blog/2010/11/30/how-do-i-build-dsls-with-yield-and-instance_eval/ for more info.