Refactor AndroidDistribution to remove SDK checks in __init__

Review Request #676 - Created July 14, 2014 and submitted

Mateo Rodriguez
This review is dependent on 672. I kept this
separate to make reviewing (moderately) palatable.

This is a refactor of AndroidDistribution. Instead of validating sdk_paths at instantiation, we
are now only validating SDKs when a tool is requested by a path. This makes better sense, in
that we would prefer to know about the tools available to us instead of the dirs that
traditionally contain them. It also moves action out of _init__. The AndroidTask instantiates
an AndroidDistribution but with unverified variables until the tools are needed.

I also added a command-line flag allowing users to specify a path of an Android SDK if they want.
This is an improvement over the earlier model that only cycled through common environmental aliases.

Users are likely to have just one SDK installed, with the issue being what tools are installed. This
checks the tools when the tasks that use them are invoked. If the user
has a custom SDK, they can now pass that at invocation.

This allows CI and Travis to pass (although Travis is failing on an unrelated issue currently, see below).

test_android_distribution was also refactored. passes locally.
Travis passes  (with 672 patched in as well) [0].

John Sirois
Mateo Rodriguez
John Sirois
Mateo Rodriguez
John Sirois
John Sirois
Mateo Rodriguez
Review request changed

Status: Closed (submitted)