Extract ItemsController into a concern

This allows for more flexible main apps, as they can create their own controller
and include this concern instead.