`scope` now forbids names that conflict with existing class methods

The following examples now cause an ArgumentError to be raised:

    class Model < ActiveRecord::Base
      scope :new, ...
      scope :create, ...
      scope :all, ...
      scope :an_existing_scope, ...
      scope :find_by_some_attribute, ...
    end

See also #13389.
`enum` now forbids values that conflict with existing methods

`enum` generates a few dynamic methods. If any of these methods
conflict with an existing one, an ArgumentError will be raised. For
example:

    class Model < ActiveRecord::Base
      enum :good, [:existing, :enum, ...]

      enum :bad1, [:existing, ...] # conflict with another enum
      enum :bad2, [:new, ...]      # conflict with a class method
      enum :bad3, [:valid, ...]    # conflict with valid?
      enum :bad4, [:save, ...]     # conflict with save!
    end

Fixes #13389.