TaskArgument responds to has_key?

TaskArgument looks like a duck and walks like a duck, but quacks like a goose.

Because of the method_missing calling args.has_key? will always return nil (unless for some reason you have a task argument called has_key?, but that's a whole other issue). This was confusing to me, and I'll be it's confusing to other folks as well. I considered mimicking other Hash methods, but I think has_key is the only one that fails in a non-obvious way.

```ruby
task :test, :email do |t, args|
  if args.has_key?(:email)
    puts "got #{args[:email]}"
  else
    puts "kinda sad"
  end
end
```