3.0 plugin shell aliases

This aliases plugin shells so that no plugin prefix is needed when invoking them:

Before:

```shell
bin/cake DebugKit.whitespace
```

Now:

```shell
bin/cake whitespace
```

In case of conflict with shells in app, the aliasing does not occur and you will need to invoke the shell using plugin notation. Plugin aliases are processed in the order plugins where loaded, in case of conflicts with other plugins, the first plugin in the list will prevail.
Would it be good to issue verbose output or debug level log messages when aliases are not made because of duplicates?