Fix alias_method_chain for classes which have class methods named 'public', 'protected', or 'private'

alias_method_chain doesn't work on classes that have class methods name "public", "protected", or "private". Not a pretty fix, but the cleanest I could come up with.

The error you would get looks something like this:
```
ArgumentError: wrong number of arguments (1 for 0)
    ../activesupport/lib/active_support/core_ext/module/aliasing.rb:38:in `alias_method_chain'
```

Related to https://github.com/rails/rails/pull/14582

@arthurnn, please review (and maybe ping some people).