Exclude redundant fields in Roller

Use the ``exclude()`` method on the querysets and lists built with
a ``build_exclude_fields()`` method to get rid of redundant fields.

Collect and reference the querysets used by the Roller in a somewhat
more declarative, DRY way.

Also, sort the fields alphabetically.

Addresses #39
Introspect relationships instead of hard-coding

Introspect the model relationship fields in the ``Roller``
constructor instead of hard-coding them.  This allows for updating
or subclassing ``Roller`` in a more declarative way through
setting ``Roller.collections`` and ``Roller.primary_collection``

Addresses #39