Build up a hash of the all plugin aliases, keyed by plugin name, with the value being an array of aliases.
This hash will contain an entry for every installed plugin.

If a plugin has not been referenced in `config.pipeline.alias` then it will be added to the map
with an alias to it's original name (see `boo` below),

Example return value:

{
foo: { as: ['bar', 'baz'] },
boo: { as: ['boo'] }
}
function(plugins, config) {
    var self = this;
    var aliasMap = Object.keys(plugins)
      .reduce(function(aliases, pluginName) {
        if (!aliases[pluginName] || !aliases[pluginName].as) {
          aliases[pluginName] = { as: [pluginName] };
        }

        aliases[pluginName].as = self._castArray(aliases[pluginName].as);
        return aliases;
      }, config);

    var unknownConfigKeys = _.difference(Object.keys(aliasMap), Object.keys(plugins));

    if (unknownConfigKeys.length) {
      this._logUnknownPlugins(unknownConfigKeys, 'config.pipeline.alias');
    }

    return aliasMap;
  }