Raise only when different included blocks are defined

Perhaps, raise of error when **same** module gets loaded twice isn't best choice

This happens when module files are loaded first time (e.g. while app reloading) and further required by hand (because some lib don't expect such preloading) - e.g. see ctran/annotate_models#181 for
```
Unable to annotate concerns/promotional.rb:
Cannot define multiple 'included' blocks for a Concern
```

See #10652 and #10650 for initial idea.
Also checked, that Proc#source_location works on jruby & rbx, too
@razum2um Warning users that files are loaded twice is fine, but I think that should be the responsiblity of an alternative `load` mechanism rather than `ActiveSupport::Concern`.  Certainly, loading files twice in development mode is quite normal (although not usually within the scope of a single request).

AFAICS, the key issues here are that:

 1. `ActiveSupport::Concern` supports only a single `included` block
 2. `ActiveSupport::Concern` should raise if an attempt is made to use multiple `included` blocks
 3. Reloading an existing `included` block should be supported in order to ease development and conform to the principle of least surprise

To that end, I suggest that we consider changing this to:

```ruby
def included(base = nil, &block)
  if base.nil?
    if included_block_exists? && !source_location_matches?(block)
      raise MultipleIncludedBlocks
    else
      @_included_block = block
    end
  else
    super
  end
end

private
def included_block?
  instance_variable_defined?(:@_included_block)
end

def source_location_matches?(block)
  @_included_block.source_location == block.source_location
end
```