Add partial installation support and contao metapackage

Now it is possible to define `target` OR `targets` in the `contao` section.
`target` define a module name in the `system/modules` directory.
`targets` is a map of paths to install in specific directories.

Example:
```javascript
{
    "extra": {
        "contao": {
            "targets": {
                "src/system/modules/nested-menu": "system/modules/nested-menu"
            }
        }
    }
}
```

The contao metapackage is solved by naming the root package.
see https://github.com/ContaoCommunityAlliance/Composer/pull/2
The update hook look into the package and update the version if contao version changed.