Expose Ivy's circular dependency check via UpdateOptions

See http://ant.apache.org/ivy/history/2.3.0/concept.html#circular

By default circular dependencies are warned, but they do not halt the dependency resolution. Using the following setting, circular dependencies can be treated as an error.

```scala
updateOptions := updateOptions.value.withCircularDependencyLevel(CircularDependencyLevel.Error)
```

Do you know the ramifications of a publicly extendable class where bits are marked `private[sbt]`?  Would extenders of this trait need to be in the sbt package?