ProvisionPhoto Refactor

There are no functional changes here.  The purpose of this PR is to allow the subclassing ProvisionPhoto and piece-meal replacement of methods like `sync_photo` and `handle_match` when run in the context of Socialcast proper.

JIRA: https://jira-projects.socialcast.com/browse/APA-16
The batch size handling is done by the `sync` method.