Fix #72: TranslationQueryset.language() should be lazy

This makes `TranslationQueryset.language()` lazy.

Changes the call to `queryset.language()` so that it just stores None and defers actual filtering until query moment. This allows using `MyModel.objects.language()` in form definitions, and have the queryset call `get_language()` in the request/response context as mentionned in #72.
Also, as all other functions in the queryset family are lazy, I believe it is the right thing not to have `language()` stand out of the pack.

As a side effect, multiple calls to `language('xx')` now replace each other instead of returning an empty set.

__Note:__ this change may break existing projects that would rely on invoking `language()` at a point, and keep the queryset around, expecting the same language later on.

Pull request includes a new _deferred_language_ test for all test cases in `hvad.tests.query`.