Dont swallow errors when bad alias_method

Given the following models:
```ruby
class Shop < ActiveRecord::Base
  has_many :customers
end

class Customer < ActiveRecord::Base
  belongs_to :shop
  alias_method :foo, :bar
end
```

This should raise a `undefined method 'bar' for class ..`  and not a `uninitialized constant` error.

A bad `alias_method` raises a `NameError` error, which is the error we were swallowing in that method.

cc @zzak @rafaelfranca @tenderlove
Actually I dont think this will work, as `detect` will return the candidate once the block is true. And we need the constant instead.