Refactor collection param validation

Return early with `next` if the collection is valid, then continue to
handle the 404 error.
Move middleware into its own directory

Make it clear what is being required and how it's expected to be used.
Extract validate body middleware into separate module

This isn't specific to the app module, yet a lot of the requires in the
app module were to support this. Moving it into its own module makes it
clearer what it does and what it depends on.
Sort out app.js require statements

Remove the need to re-indent/edit/change other lines when changing
require statements. This seems to be fairly standard in the node/js
community.