Added codebook viewset
Wrote AmCATViewSetMixin which allows defining viewsets in a less repetitive and flexible manner.