[Soc2014] Official meta API

I just did a merge up to current trunk, and hit a bug that seems to be related to this method. I haven't fully diagnosed the problem yet, but `get_candidates_to_delete` returns different results depending on which tests are/have been run.

The problem manifests as a test failure in `aggregation.tests.BaseAggregateTestCase.test_decimal_max_digits_has_no_effect`

If you run that test by itself, it passes, but if you run `aggregation.tests.BaseAggregateTestCase.test_annotate_defer`  first, it fails. The failure is:

```======================================================================
ERROR: test_decimal_max_digits_has_no_effect (aggregation.tests.BaseAggregateTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/rkm/projects/django/github/tests/aggregation/tests.py", line 693, in test_decimal_max_digits_has_no_effect
    Book.objects.all().delete()
  File "/Users/rkm/projects/django/live/django/db/models/query.py", line 571, in delete
    collector.collect(del_query)
  File "/Users/rkm/projects/django/live/django/db/models/deletion.py", line 192, in collect
    if self.can_fast_delete(objs):
  File "/Users/rkm/projects/django/live/django/db/models/deletion.py", line 155, in can_fast_delete
    if related.field.rel.on_delete is not DO_NOTHING:
AttributeError: 'ManyToManyRel' object has no attribute 'on_delete'
```

The failure is only occurs on a failure dependent condition - L154 in this file provides a bailout condition; so depending on which related object is inspected first, you might not hit the problem. 

I'm still investigating; It might just be a stale cache thing, but I'm not completely convinced of that yet. I wanted to report this so it isn't forgotten, and on the off chance someone else gets a chance to look into it before I do.