WIP: train
DRY test data in BulkUploadTest
Use attachments_attributes=

We need to have an attachments_attributes= method in order to persuade
ActionView and form_for to build a form for multiple attachments that
doesn't make Rack explode trying to parse the payload when you submit
it. Given we need attachments_attributes= to exist, we may as well use
it (rather than a more appropriately named instance method), lest some
poor soul should see the empty method and delete it...
Don't pass params to BulkUpload#initialize
Find existing attachments by id, not filename

BulkUpload is called under two circumstances; firstly when we've just
unzipped a zip file and given it a bunch of filenames. At that point we
identify attachments by checking the filename.

The second time we use BulkUpload we've already found the IDs of
attachments whose files will be replaced; better to use the IDs at this
point than to try and identify which attachments to update by comparing
filenames.
Create new AttachmentData for existing attachments
Tweak test descriptions
Document BulkUpload
Set to_replace_id replacing existing attachments in bulk