Template loader api updates.

Playing around with adding get_directory to the loaders instead
of os.path manipulation in templates.loader_tags. This way, loaders
that don't use the filesystem can still avoid recursion.

Working with the egg loader uncovered a bug. Instead of extending
happening like:

app1/base.html -> app2/base.html -> app3/base.html

it happens like:

app1/base.html -> app1/base.html -> app2/base.html -> app3/base.html

This is because the current template directory isn't removed until
the extends tag runs.

The template itself doesn't provide it's full path, unless
TEMPLATE_DEBUG is true. We may need to change the behavior of the
template system and always set origin. This way, the current template
directory can be removed before when the template directories are
calculated.
Updates to fix re-extending template and egg loader.

* The extends tag now excludes the existing template from being extended
* Fixed the egg loader tests to pass
* Moved egg tests to template_tags.text_extends

Not sure if we can always assume the first template in the history
is the current template.