Fix #20346: cache middleware should vary on full URL

This pull request changes the generation of cache keys from using the path of a request (`request.get_full_path()`) to the more-standard fully-qualified URL (`request.build_absolute_uri()`.

Tracked at https://code.djangoproject.com/ticket/20346.