Fix collection association with the same name as ancestor private method.

When I define a scope with the same name as the ancestor private method.
Such as `open`. It will cause an error.

```ruby
class Client
  has_many :comments
end

class Comment
  belongs_to :client
  scope :open, -> { where(open: true) }
end
```
```
> client.comments.open
ArgumentError:
       wrong number of arguments (0 for 1..3)
     # ./lib/octopus/relation_proxy.rb:20:in `initialize'
     # ./lib/octopus/relation_proxy.rb:20:in `open'
     # ./lib/octopus/relation_proxy.rb:20:in `block in method_missing'
     # ./lib/octopus/proxy.rb:226:in `block (2 levels) in run_queries_on_shard'
     # ./lib/octopus/proxy.rb:476:in `using_shard'
     # ./lib/octopus/proxy.rb:225:in `block in run_queries_on_shard'
     # ./lib/octopus/proxy.rb:462:in `keeping_connection_proxy'
     # ./lib/octopus/proxy.rb:224:in `run_queries_on_shard'
     # ./lib/octopus/shard_tracking.rb:30:in `run_on_shard'
     # ./lib/octopus/relation_proxy.rb:20:in `method_missing'
     # ./spec/octopus/relation_proxy_spec.rb:17:in `block (3 levels) in <top (required)>'
```

Use `public_send` instead of `send` to avoid this problem.

__Update__
It seems that rails3 also has the same problem:
https://github.com/rails/rails/blob/v3.2.21/activerecord/lib/active_record/associations/collection_proxy.rb#L102
So I skip the test on rails3.