Do not modify definition during preload

If a preload is detected, create a new Task and copy in the new
preloaded fields from either the original definition or the preload
Task. Not modifying the original task paves the way to allow more
caching (potentially even of the preloads themselves), and the copies
are done as minimally as possible to reduce their impact.

Change-Id: I104b5d3bdd2d53cc863c8aef2e90c70116ebcf4d
3 files changed