Add 'remote_dest' argument to the assemble module

Following on from #5091 and #5119 I've updated the assemble module to have an extra argument, remote_dest. With this it shouldn't be necessary to have the combine module from #5119

I have had to cherry-pick a couple of commits from #5091, but I have only taken the ones that are needed to get this code path to complete without any issues (I believe that some work is still needed to get the assemble module fully working).