Support proxy models (still requires one query per proxied model, not optimal)

Optimization - don't do extra queries for proxy models

Handle non-distinct results from base object query

Avoid needless query when saving polymorphic model instance

Since PolymorphicManager sets use_for_related_fields=True,
Django will happily use it as a base manager, so the tests
were wrong as far as I can tell.
Update for proxy models and Django 1.5

Only monkeypatch when using Django < 1.5
Updated test
Fixes proxy models in the admin

The PolymorphicParentModelAdmin was getting the concrete model ids for
the add form.