Cloudkit backend

This change refactors backend services into their own classes so that users can easily adapt PunchClock to run on whatever backends they want. The backend used is configured in constants.h. Heroku is still the default backend.

It also includes a CloudKit backend. I originally wrote it as a way to learn the CloudKit framework. As I should have expected, since CloudKit is still in beta, some functionality doesn't work. I think the issues are all server-side, so once they are fixed, the CloudKit backend should just work. Aside from periodic unavailability, the issues affecting PunchClock are

1. Assets uploaded to CloudKit through the CloudKit dashboard are not properly downloaded to the app, so custom pictures do not work. This is a known problem in the developer forums.

2. Push notifications are only delivered when the app is running. This is also a known issue in the developer forums. Since PunchClock doesn't display push notifications in-app, this means that users will never see messages.

This change also contains a couple minor Storyboard tweaks to work around an iOS 8 UITableView display bug.