Batching

Closes #282
`Trait` (or at least should be) for `&HeavyBatch`, so passing it by value here is fine. It is done by value because of how `LightBatch` comes in together with the data and a context.