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 github/ruby@d8f25bf3d80dc65d9ff9aee69a2445cc2e8e5573 github/rails@0b57366c77d5f133b972f39688a7753acdda2c62