Allow model elements to be removed if nothing is going to use them.
Make inner classes static to avoid unnecessary references.
Merge branch 'release'

Conflicts:
	subprojects/core/src/main/groovy/org/gradle/model/internal/DefaultModelRegistry.java
Extend model removal check to check for dependent finalizer rules as well as mutation rules.