def resolve_remotes
      @remotes = {}
      top_level_remotes
      top_level_remotes.each do |remote|
        remote[:importer] = Origen.app
        add_remote(remote)
      end
      # Add remotes from imports
      Origen.app.plugins.each do |plugin|
        plugin.config.remotes.each do |import_remote|
          import_remote[:importer] = plugin
          add_remote(import_remote) unless import_remote[:development]
        end
      end
      @remotes
    end
def resolve_remotes
      @remotes = {}
      top_level_remotes
      top_level_remotes.each do |remote|
        remote[:importer] = Origen.app
        add_remote(remote)
      end
      # Add remotes from imports
      Origen.app.plugins.each do |plugin|
        plugin.config.remotes.each do |import_remote|
          import_remote[:importer] = plugin
          add_remote(import_remote) unless import_remote[:development]
        end
      end
      @remotes
    end
Populate an array of required remotes from the current application
 state and resolve any duplications or conflicts.
 Conflicts are resolved by the following rules:
   * A path reference always wins.
   * If two different paths are found an errors will be raised.
   * If multiple versions of the same remote are found the most
     recent one wins.