Deduplication during plugins loading may cause plugin to be excluded unintentionally (without any warning)
<!--
1. If you have a question and not a bug/feature request please ask it at http://forum.serverless.com
2. Please check if an issue already exists so there are no duplicates
3. Check out and follow our Guidelines: https://github.com/serverless/serverless/blob/master/CONTRIBUTING.md
4. Fill out the whole template so we have a good overview on the issue
5. Do not remove any section of the template. If something is not applicable leave it empty but leave it in the Issue
6. Please follow the template, otherwise we'll have to ask you to update it
-->

# This is a Bug Report

## Description

Based on this code:
https://github.com/serverless/serverless/blob/master/lib/classes/PluginManager.js#L70

Serverless framework does plugin deduplication using class names that those plugins expose. This requires class names to be unique, which:
1. Is not documented (guess how many plugins have their classes named `Plugin`, `ServerlessPlugin`, `MyPlugin`)
1. Error prone since any class name that is not UUID can potentially be duplicated in another plugin

What makes debugging even harder is that there is no warning message printed / error thrown if duplicated plugin is detected.

Solution depends on the intent of this check. If it's in place to prevent accidental listing of the same plugin twice, why not to remove duplicates from the plugin list itself?

## Additional Data

* ***Serverless Framework Version you're using***: 1.22.0
* ***Operating System***:
* ***Stack Trace***:
* ***Provider Error messages***:

Deduplication during plugins loading may cause plugin to be excluded unintentionally (without any warning)
<!--
1. If you have a question and not a bug/feature request please ask it at http://forum.serverless.com
2. Please check if an issue already exists so there are no duplicates
3. Check out and follow our Guidelines: https://github.com/serverless/serverless/blob/master/CONTRIBUTING.md
4. Fill out the whole template so we have a good overview on the issue
5. Do not remove any section of the template. If something is not applicable leave it empty but leave it in the Issue
6. Please follow the template, otherwise we'll have to ask you to update it
-->

# This is a Bug Report

## Description

Based on this code:
https://github.com/serverless/serverless/blob/master/lib/classes/PluginManager.js#L70

Serverless framework does plugin deduplication using class names that those plugins expose. This requires class names to be unique, which:
1. Is not documented (guess how many plugins have their classes named `Plugin`, `ServerlessPlugin`, `MyPlugin`)
1. Error prone since any class name that is not UUID can potentially be duplicated in another plugin

What makes debugging even harder is that there is no warning message printed / error thrown if duplicated plugin is detected.

Solution depends on the intent of this check. If it's in place to prevent accidental listing of the same plugin twice, why not to remove duplicates from the plugin list itself?

## Additional Data

* ***Serverless Framework Version you're using***: 1.22.0
* ***Operating System***:
* ***Stack Trace***:
* ***Provider Error messages***: