Multiple template engines

This PR contains the bulk of the multiple template engines project.

It's still missing tests for the new code in django.template.loaders.
Hmm. This is clever (deferring to Jinja's `PackageLoader`) but I'm afraid that it might actually introduce problematic inconsistencies in behavior. Specifically, we have the `path` attribute on `AppConfig`, which is supposed to allow you to say "this app's filesystem stuff lives over here" (particularly in cases like namespace packages where Django may not be able to figure that out automatically). I would expect the Jinja2 backend (and all other backends) to respect that setting when finding templates. But with the approach you're using here, I don't think it will.