Fixes JRuby #1047 - incorrect test for whether a kw arg was provided.

Formerly, the code attempted to extract the argument value from the
hash of provided values and test it against nil. This fails in the
case of an explicitly passed nil. The new version instead tests
whether the hash contains the desired key.
Add license header.
Fixes #1049: incorrect arity checking for kw arguments

There were two basic problems with the existing logic:
* Arguments could be treated both as kw args and as, e.g.,
optional args.
* An arity check for methods with kw arguments in the Arity class
is deferred to asignment time, but the check was not being performed
there, either.
Merge remote-tracking branch 'github/master'