1.	Project import uses "chain-of-responsibility" pattern for GradleProjectResolverExtension.
2.	Project import can reuse Gradle Tooling connection. But in fact, it's not needed to deal with it in a GradleProjectResolverExtension, since it already has all information it needs about gradle build models
3.	 GradleProjectResolverExtension can provide extra JVM args for core logic to deal with Tooling API
see com.android.tools.idea.gradle.project.AndroidGradleProjectResolver#getExtraJvmArgs method
4.	GradleProjectResolverExtension may provide extra project model classes to retrieve for core logic
e.g. com.android.builder.model.AndroidProject
see com.android.tools.idea.gradle.project.AndroidGradleProjectResolver#getExtraProjectModelClasses method
5.	GradleProjectResolverExtension may contribute to extension specific UserFriendlyError parser.
see com.android.tools.idea.gradle.project.AndroidGradleProjectResolver#getUserFriendlyError method
6.	BuildActionExecuter used if it supports by user’s  Gradle version otherwise fallback to ModelBuilder.
7.	Extension point added for ExternalSystemTaskNotificationListener to listen any task events
8.	onSuccess and onFailure methods added to ExternalSystemTaskNotificationListener
NPE
merge completion variants with same method erasures
testdata for IDEA-54197
plugin advertiser: do not suggest to restart if no plugins were installed/enabled
plugin advertiser: do not suggest to enable by already ignored facets
plugin advertiser: sort suggested plugins by name
plugin advertiser: no border over plugin name
NPE
testdata for IDEA-18343