Batching

Closes #282
I believe it is incorrect for it to take the batch by value here. For the `HeavyBatch`, it will move, meaning you can only use it once. Is that intended? All of the trait methods work fine behind a `&`