API cleanup

@thraxil While implementing the notification API, I noticed that there's a lot of API-related views in the `main` app alongside the traditional django views. I think these probably belong in the `api` app, maybe this is another artifact of moving from the ad-hoc API to django-rest-framework? Let me know if these commits don't make sense, or you don't agree.

I also added a test for the items resource in preparation for a more solid API.

Summary of these commits:
- Move serializers.py into the `api` app
- Move api-related views like ClientViewSet into the `api` app
- Add API tests for GET /items/