extend plugin and plugin info to allow for extending models

fixes #1014

Example: 
```
module ConcertoCustomPlugin
  class Engine < ::Rails::Engine
    isolate_namespace ConcertoStatistics
    engine_name "statistics"

    def plugin_info(plugin_info_class)
      @plugin_info ||= plugin_info_class.new do
          extend_model(Screen, ConcertoCustomPlugin::Concerns::AddCustomizationToScreen)
        end
      end
    end
  end
end
```

```
module ConcertoCustomPlugin
  module Concerns
    module AddCustomizationToScreen
      extend ActiveSupport::Concern
      included do
        has_many :things, :class_name => 'ConcertoStatistics::Thing', :dependent => :destroy
      end
    end
  end
end
```
hm.. good question. 
The current order would not allow you to use your extended models inside the plugins init block. Not sure if that would be a valid use case. 

But even moving the the ```Rails.application.config.to_prepare``` up wouldn't really solve this problem, because the  block is executed is later (As far as I know after all initializers are run and before the first request)



Even if we flip the order, this would mean