Flexible fetch_related

Allows objects of multiple types to be mixed and gracefully handles fields that don't exist on some of the objects.