Given that `within_range?(2)` passes `nil, nil` as the args, this shouldn't be accepted if we're trying to match ruby's behavior:

``` irb
irb(main):001:0> def arity_kw(x, y:1, z:2); end
=> nil
irb(main):003:0> arity_kw(nil, nil)
ArgumentError: wrong number of arguments (2 for 1)
	from (irb):1:in `arity_kw'
	from (irb):3
	from /Users/myron/.rubies/ruby-2.0.0-p247/bin/irb:12:in `<main>'
```

Two args is OK if the 2nd is a hash, though:

``` irb
irb(main):004:0> arity_kw(nil, {})
=> nil
```

Seems like writing specs around the arity range numbers doesn't really line up with ruby's semantics anymore, so it might be better to write these specs showing examples of passing args rather than using a `within_range?` helper.  This could be addressed with the `**kw_args` split we talked about, though.