Miscellaneous fixes and improvements...

* Break PID generation out to separate method, so it may be more easily overridden
* Pass along `$context['sandbox']`, so that data can be carried and used in later iterations through the batch operation
* Squash the custom DS-COMPOSITE-MODEL parsing