Add PR title if applicable, limit the length of the file to avoid file-name length issues.
Also put all contents of the artifact into a folder with the same name to simplify extraction.
msbuild does not use the project in it's entirety to build the app. This means problems can slip through, so an easy solution is just to ensure the XML is well-formed. More sophisticated validation could be done with something like `xmllint` but seems overkill.
The `.git/modules` folder was not being initialized, which caused the post-cleanup of the `Checkout` step to flag an error at the end. Caching this folder and thus completely caching anything submodule related, should eliminate this warning.
Also allowed submodules to be pulled in parallel when they aren't cached.