Pluggable backends for sync, v1

Summary:
The pluggable backends for the sync service, it works as expected but is called v1 for three reasons:
1. I'd like to convert a few absolute imports to relative imports (marked by a corresponding TODO in the code)
2. I'd like to look into a better way to identify the provider (I currently use a module attribute)
3. It hasn't been reviewed by you yet =)

Test Plan: Not required.

Reviewers: spang

Differential Revision: https://review.inboxapp.com/D22
Auth abstracted out + Pluggable backends for auth, v1
Merged