Remove use of Method#private?

This pull request removes the use of `Method#private?` - a hacky method defined in our own Ruby.

This was originally done because it was the easiest way to get Rails 2.3 up and running on Ruby 2.0, but it's not an ideal solution and it prevents us moving to stock Rubies.

cc @josh @vmg @github/rails