Create symlink if dependency has preferred name different than package name

This commit allows us have packages compatible with Component, solves Issue #3144.

The commit creates a symlink if package.json defines a dependency with a preferred name different than the NPM package name, like following;

```json
"dependencies": {
  "foo": "azer/foo"
}
```

When the NPM registry name of the project located at  github.com/azer/foo is not foo:

```json
{
  "name": "azer-foo-component"
}
```