collect only unique providers

Noticed the `provides_map` would contain multiple copies of the same plugin under `attr[:_plugins]`. This changes the `provides_map` so that it saves only one copy of a plugin in `attr[:_plugins]`.

@danielsdeleo @sersut