Use an algorithm to copy banks to the device
This MR removes the explicit raw banks in RuntimeOptions
in favour of a configurable algorithm - DataProvider
that copies the banks to the device. All algorithms that used to copy banks themselves have been updated to take them as input. A DataProvider
has been inserted in all sequences where needed.