Split up contributions related code into separate classes

A controller introduced to deal with common code for picking images
from the gallery or camera. We should probably start using similar
controller methods elsewhere.

Splitting this particular one up because I'll be using it elsewhere