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.
I guess you're using `should` vs `must` to communicate the distinction, that's fine. "should" seems accurate - there's not much reason why a template engine shouldn't be able to provide `from_string`