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
Seems this whole `else` block can be simplified to:

```ruby
constant = candidates.detect do |candidate|
  candidate == ActiveSupport::Dependencies.safe_constantize(candidate).to_s
end

constant || raise NameError.new("uninitialized constant #{candidates.first}", candidates.first)
```