Add tests the the aliases.  This change makes sure only a single resolver can be initialised rather than giving the ability to instantiate multiple modules.  Initialise takes the dictionary of aliases that are built from the config.json's.  This change also ensures flags and aliases are applied when duplicates are found
The data passed into initialise is only used by one of the resolver functions. You could argue that the resolver function should be injected along with the alias dictionary, however for the sake of simplicity here we'll just inject the data and associate the name of the resolve function with the data injection function
Remove redundant doc block comment
Add a better explaination to flatMap
aliasOf should already be an array by this point. This change acknowledges the fact and does not create a new array if the aliasOf property already exists.
Move the logic for cascading flags and aliases into the alias module.  You can now add a resolution function that maps a name to potentially many names using a chained API
Add test that asserts that only the original alias is included as part of a resolved polyfill identifier, not intermediate aliases
Update documentation, and try and make naming more consistent
Merge pull request #50 from Financial-Times/rebase_alias_refactor

Rebased alias refactor