pool: Refactor migration module task to decouple it further from the pool

Decouples the Task from JobDefinition and from CacheEntry. Removes coupling
between Task and the source state.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Patch: https://rb.dcache.org/r/7532/