Now we offer to migrate to wrapper if project uses unsupported Gradle version.

The use case is the upgrade to Android Gradle plug-in 0.13, which requires
Gradle 2.1.

If the project is configured to use a local Gradle distribution, but the path
of the distribution:
- is empty
- does not belong to a Gradle distribution
- belongs to a Gradle distribution that is no longer supported
the IDE will ask the user if she'd like to migrate the project to use the
wrapper:
- if user accepts, a wrapper is created (with the correct Gradle
  version) and project is sync again
- if user does not accept, the IDE shows the 'Select Gradle distribution
  path' dialog, where users have to manually select the path of the local
  Gradle distribution. Once the user selects it, the IDE will automatically
  sync the project.

Change-Id: Ifc2bdc9ed64443bf0c2c6de92b7c025ba5c94369
Added hyperlink to migrate to Gradle wrapper if sync fails because of unsupported version in local Gradle distribution.

This is part of the work related to migration to Android Gradle plug-in 0.13.

If Gradle sync fails because project is using plug-in 0.13 with an unsupported
Gradle version (1.*) and the user did not set the IDE to use the right Gradle
version (the IDE prompts user to do this automatically before sync, but user
can opt out,) the error message will show a hyperlink that migrates the project
to the Gradle wrapper using the right version of Gradle, and automatically
syncs project after that.

Change-Id: I4d42829bfb83a5aac19810a96cd7de9bbc3c2c25
"SDK Settings" page logic

Change-Id: I0b44143426763181aef7201be76328e3e9e7f504
75983: Sync notification doesn't trigger for all edits

There were two bugs that needed to be fixed:

1) We need to not just check file stamps for build.gradle files, but
   also the document registry to see if the .gradle file has been
   edited but not yet saved

2) We need to trigger the editor notification check not just for the
   PSI childReplaced event, but for childAdded and childRemoved as
   well.

This CL also adds GUI testing support for the editor notification
facility; it can now check that there are no editor notifications, or
check that a particular notification is showing, and finally it can
click specific hyperlinks in the notifications. The regression test
for this bug performs all three.

Change-Id: Id07f10e5cc412a518da2ea56e6c4196c6f86b97a
Use IDevice.getProperty instead of deprecated getPropertyCacheOrSync

Change-Id: I11f0e2e2d5d876c638e13c73a3f83999ff489c5c
Merge "Now we offer to migrate to wrapper if project uses unsupported Gradle version." into idea133
Merge "Added hyperlink to migrate to Gradle wrapper if sync fails because of unsupported version in local Gradle distribution." into idea133
Use https for logging

Change-Id: Ic1b3439a2775a51685a32846ca9fb7a5af4fb853
Merge "Use https for logging" into idea133
Merge "75983: Sync notification doesn't trigger for all edits" into idea133
Merge ""SDK Settings" page logic" into idea133
MemoryMonitor: Update tool and action icons

Updates tool window and action icons and adds retina versions for them.

Change-Id: If4a9c0998e8bc9a0a96c66bf2613488a86780f91
Merge "MemoryMonitor: Update tool and action icons" into idea133
Merge "Use IDevice.getProperty instead of deprecated getPropertyCacheOrSync" into idea133
Add rendering tests

This CL adds infrastructure for easily testing the visual appearance of layout
renderings. You can require that the rendering should be roughly similar to
an existing thumbnail of the same scene (and the first time you run the test
it will generate this thumbnail such that you can visually inspect it and make
sure it looks correct). On subsequent runs the rendering is painted, scaled
and compared to the golden file and the test passes if the image is sufficiently
similar to the rendering.

If the images are too different, the test will generate a "delta" image which
shows the before, after and difference.

The test currently checks a couple of key renderings:
- a basic layout with an action bar
- a layout including most of the widgets
- a layout with some gradients and included layouts
- a layout rendered as included in another (e.g. testing overlay masks)
- a drawable resource
- a menu resource

Change-Id: Ic6f32a00346ab89a0569e49ceaac89d257ab69e9
Merge "Add rendering tests" into idea133
Warn when a rendered custom view has been modified after build

Change-Id: I43f882610d26b26309c09bb9a79c4ef16a7b610a
Merge "Warn when a rendered custom view has been modified after build" into idea133
Improve GUI tests source tree lookup

Change-Id: Ieb5299e4471ff792bb275a7957ca9f648583b475
Merge "Improve GUI tests source tree lookup" into idea133