Adds a PhotoViewer class
Adds preconditionFailed support to PhotoViewer
Adds new trait to share asserts between tests
Adds assertETag to AssertTrait
Uses PhotoView in PhotoController
Adds initial version of makeAcceptable