Return a 404 response when a batch does not exist

**Note: merging onto `master` rather than `postgres-master`, for easier rebasing.**

We've been getting intermittent failures in the batch import tests, because Cucumber's PhantomJS instance was sending periodic Ajax requests about the status of the batch it had created, even after the test teardown had removed the batch.

Returning a 404 response instead of raising an error should stop this causing an error in the tests, without having any effect on the behaviour of the front-end itself (it fails just the same with a 404 or a 500 response).