• Make Android states more robust to version updates

    Use separate directories for separate versions of the
    SDK, NDK, and toolchain, and use symlinks to point to the current
    versions. This is more robust for a few reasons:
     - Partially-completed upgrades to new versions won't touch
       existing versions on the disk
     - The symlinks aren't updated until the respective new version is
       completely installed, allowing for more transactional updates.
     - The symlinks also allow for constant paths in the bash_profile file
       and the buildbot config, which means less moving parts to break.
       In particular, the relevant buildbot config is on the master, and
       using symlinks makes it unnecessary to use Salt orchestration to
       gate changes to the master buildbot config on changes on the cross
       builders.
    
    Ideally, these states would also use file.directory with clean: True
    to clean out old versions of the SDK, NDK, and toolchain, but I wasn't
    able to get this working properly yet (the just-downloaded files would
    keep getting cleaned away).
    
    This also eliminates our use of cmd.wait, which was recently put on the
    deprecation path in Salt, and replaces it with cmd.run + creates: True.
    aneeshusa committed Mar 22, 2016