Context: https://github.com/xamarin/xamarin-android/projects/10
One of the goals behind the Mono SDK archive was to enable product
builds without having the entire Mono source tree present, which
means it should be possible to remove the Mono git submodule and
build the entire xamarin-android repo without any issues.
At the same time, we want to keep the ability to build Mono from
source, if necessary, for situations when a developer works on the
BCL or the runtime itself and there's no appropriate binary archive
present.
To support these two requirements:
* Remove the Mono submodule
* Put Mono repo commit reference into the `.external` file
* Make distinction between "commercial" and "regular" bits in the
`.external` file so that we don't attempt to check out everything
mentioned in there in situations when a developer doesn't have
access to the commercial bits.
* Use Mono linker sources from the archive
* Remove `zlib-helper.c` from the `libmonodroid` build - the API
implemented in there is no longer used by Mono.
* `Xamarin.Android.Cecil.dll` and `Xamarin.Android.Cecil.Mdb.dll`
are no longer built from source. Instead we use Cecil to reshape
`Mono.Cecil` and conjure the two renamed and re-signed assemblies.
* All the code which used `Xamarin.Android.Cecil` project reference
now simply references the conjured assemblies (which are also
added to the bundle)
* Third Party Notices are generated from licenses found in the
Mono archive.
* Windows build downloads also the Darwin archive - in order to be
able to use Mono Linker sources as well as licenses contained in
this archive.