Implement abstract base class for flags.

The original implementation was tightly coupled to Django auth user & group models.
The common fields are now abstracted out into the ABC, allowing users to create their own Flag class
with minimal boilerplate.

This is not a matter of a custom user model, per se. In a project, we are using ``User`` and ``Group`` from ``django.contrib.auth``, but there are is also a second ``User`` model that exists on a different db we need to reference. It's complicated, but this will eliminate the need for me (and other projects, I assume) to either copy&paste or perform some hackery so my project can play nice with Waffle.