Mostly-complete auto-installation of the Android SDK and components.

If the (broken) global config property is selected, the SDK will be downloaded
and installed as part of any build using this plugin, assuming an existing SDK
isn't already installed.

Currently this works (on a Mac), but should be fine on other platforms.
Support for slave nodes and HTTP(S) proxies is still missing.
Run SDK installation on the remote node, rather than on the master.
Merge branch 'master' into auto-install

Conflicts:
	src/main/java/hudson/plugins/android_emulator/AndroidEmulator.java
	src/main/java/hudson/plugins/android_emulator/Constants.java
Make some updates based on the SDK Tools r14 preview.
Determine SDK components required for configured AVD and install them.
JENKINS-11492 android emulator logcat temporary file breaks maven-release-plugin

Use createTextTempFile to allocate the temporary file. Force the temporary
file to be created in the java.io.tmpdir directory instead of the job
workspace by passing parameter isThisDirectory as false.
Merge pull request #6 from oldelvet/jenkins-11492

[FIXED JENKINS-11492] Write logcat output to file in temp directory.
Implement detection and installation of required SDK dependencies.

Installation will now block per-node so that only one executor on
the same machine can attempt to install an SDK component concurrently.

Added detection of various scenarios that aren't yet possible to automate.

Updated initial SDK to download to r15.
Merge branch 'auto-install'

Conflicts:
	src/main/java/hudson/plugins/android_emulator/EmulatorConfig.java
	src/main/java/hudson/plugins/android_emulator/util/Utils.java
Add support for Android 4.0.
[JENKINS-11516] Detect when AVD cannot be created due to missing ABI.
Improve detection of emulator child process on Windows.

It seems, at least on my Windows 7 machine, that the parent can be reported as still alive.
Fix priority of variable expansion.

Previously we were expanding the system variables first, which meant any identically-named build variables could not be then expanded on top.
Press Back after boot each time to ensure the Menu isn't shown.
Ensure adb is connected to emulator after long periods of waiting.
Add various notes to myself to source control.
Add some wiki-related notes.
Use private ADB per job.

This should fix issues where adb crashing brings down all your jobs.
Use TCP sockets and adb disconnect.

This fixes the infinite loop of 'adb devices' having an 'offline' device that
never comes up, since reconnecting seems to fix the issue.
Move logcat thread to only start after boot has completed.

This should be enough for most situations, especially where snapshots
are being used.  It also means we don't need to add complex logic to
restart the logcat thread and de-duplicate messages after each call
made to 'adb disconnect' during the waiting-for-boot-completion phase.