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.
`from_string` isn't called anywhere in Django. The only use case is:

    from django.template import engines
    template = engines['foobar'].from_string("blabla")

I don't think such code is very common and therefore it's acceptable for a particular backend not to implement `from_string`, for example if the underlying library doesn't provide a corresponding API.

Of cours most libraries offer such an API and exposing it is tempting. That's why I standardized a method (name & signature) for this purpose.