Fix #2098: Lambdas are yielded to differently in ruby 2.2 vs 2.1

* When a single value (array or not) is yielded  to lambdas,
  only required args are used to decide whether the value is
  treated as an array or not.

  a = lambda { |x,*| p x}; def foo; yield [1,2]; end; foo &a'
  a = lambda { |x| p x}; def foo; yield [1,2]; end; foo &a'

  In both those snippets, the value of x is [1,2]