If fdt_overlay_apply fails at some stage to apply the overlay to the base, both the base and overlay may be in an inconsistent state (some fixups applied, some phandles adjusted, some symbols merged). These can be bad for a number of reasons, to include user frustration if some fixups applied and not others. Fail a life safer by making a clean copy of the base FDT for every overlay that we can simply discard if things go awry.
This also allows us the luxury of simply discarding overlays if we hit some kind of memory limit or if they're malformed and extremely large for some reason. We'll now leave a nice error message indicating that some overlays could not be applied due to size restrictions and we apply what we can.
For reviewers: Please note that I've not yet run-tested this on a clean master. I broke the board's ubldr (`## Application terminated, rc = 0x3BADAB1`) and I'm not physically at the machine to fix it. I will test this on Tuesday unless someone else has a chance.