Consolidated resolution

This adds a new option called updateOptions, which can enable consolidated resolution for update task.
The consolidated resolution automatically generates an artificial module descriptor based on the SHA-1 of all direct dependencies. This consolidates the Ivy resolution of identical Ivy dependency graph across multiple subprojects.

This is how it's enabled:

```scala
updateOptions in ThisBuild := (updateOptions in ThisBuild).value.withConsolidatedResolution(true)
```

/review @jsuereth