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.