Restore full page photo view on map page

Changes to the API response schema broke photo viewing. While fixing it
I took the opertunity to refactor photo loading logic so it could be
shared and added a scroll view and gesture recognizer to the image view
controller so it more closely recreates iOS native photo zooming and scrolling.