Use Django's m2m_changed instead of our custom signals in depend_on_m2m

See: https://docs.djangoproject.com/en/dev/ref/signals/#m2m-changed
(introduced in Django 1.2)
Test removing and clearing in test_depend_on_m2m
Merge pull request #1235 from learning-unlimited/argcache-m2m-signals

Use Django's m2m_changed instead of our custom signals in depend_on_m2m