Checking framework

This branch is part of my Google Summer of Code 2013 project. It's not intended to be merged, it's only to make deep review easier.

See discussion of checking framework on django-developers: https://groups.google.com/forum/?fromgroups=&hl=en#!topic/django-developers/fEf21dtpqDE