Added StrDisplayNameMixin to many widgets.

`StrDisplayNameMixin` uses the `__unicode__` or `__str__` methods of the
widgets to create the `display_name`.  This is better than using a lambda
in the `DisplayNameMixin` because it forces the programmer to also write a
`__str__` method for the model.

I also took the liberty of placing the Meta classes where I felt they should be.