removed `libraries` global variable

- introduced TemplateEngine class
- get_library delegates to new method of TemplateEngine now
- introduced new TemplateEngine.add_library method
made Parser using TemplateEngine

- added TemplateEngine argument to Parser constructor
- moved compile_string function to TemplateEngine class
- rewritten parser tests
- added passing a template engine to nodes of base.Library (like
  InclusionNode)
made Template using TemplateEngine

- added TemplateEngine argument to Template constructor; renamed
  Template to _Template; Template became delegation function
- rewritten tests -- they use _Template instead of Template
removed `template_source_loaders` and `builtins` global variables

- added _template_source_loaders and _builtins attributes
  to TemplateEngine
- added find_template method to TemplateEngine; function find_template
  in loader module delegates to TemplateEngine now
- added add_to_builtins method to TemplateEngine; it receives a library
  or a module name containing the library; function add_to_builtins
  delegates to TemplateEngine now
- rewritten tests so they use default_engine._template_source_loaders
- moved find_template_loader, make_origin and LoaderOrigin from loader
  to base module
- BaseLoader.load_template always returns source instead of compiled
  template now; modified loaders.cache.Loader also -- it doesn't cache
  templates any more!
removed dependence on get_template in inclusion tags

- added loaders argument to the constructor of TemplateEngine
- IncludeNode and similar nodes accepts engine argument so they don't
  rely on default_engine any more
- rewritten RequestContextTests in tests.py
- rewritten TemplateEngine.find_template so it always returns compiled
  template and never returns raw template source
- get_template delegates to TemplateEngine.find_template now
- select_template in loader module delegates to new
  TemplateEngine.select_template method now
rewritten some tests in tests.py

The tests are:
- test_include_missing_template
- test_loader_debug_origin (but the cached loader still relies on default_engine)
- test_extends_include_missing_baseloader
- test_extends_include_missing_cachedloader
reordered code in template/base.py

- replaced add_to_builtins with default_engine.add_to_builtins;
rewritten test_templates in tests.py
replaced default_engine by get_default_engine
restored caching in cached.Loader

- introduced two-steps building of TemplateEngine's instances; use
  __init__() and then call set_loaders() or do it in one step:
  __init__(loaders)
- added optional keyword argument called `engine` to BaseLoader
- restored caching in cached.Loader
- rewritten some tests in tests.py
moved calculating template loaders away from TemplateEngine

Calculating template loaders based on data from settings is now part of
get_default_engine function.

- added engine argument to find_template_loader function
- dropped support for function-based template loaders
rewritten tests in custom.py and custom templatetags and filters

- custom templatetags and filters are no more defined at global scope in
  tests/regressiontests/templates/templatetags/custom.py; they are
  being defined in a new function get_templatetags which receives a
  template engine; that required some changes in tests.py
- rewritten base.Library so it doesn't call functions depending on
  default_engine like select_template or get_template
- introduced new get_template method of TemplateEngine
rewritten tests in callables.py, loaders.py, nodelist.py and unicode.py

The tests are:
- callables.CallableVariableTests
- loaders.CachedLoader
- loaders.RenderToStringTest
- nodelist.NodelistTest
- nodelist.ErrorIndexTest
- unicode.UnicodeTests
added unicode_literals imports everywhere in templates package and its tests
rewritten SimpleTemplateResponse and its tests

so they doesn't rely on default_engine any more.

SimpleTemplateResponse receives optional keyword argument in __init__
called `engine`. The class is pickable and during repickling it calls
get_default_engine() since TemplateEngine is not pickable.

The rewritten tests are:
- CacheMiddlewareTest
- CustomURLConfTest
renamed _Template back to Template

- the class Template has new optional keyword argument called `engine`;
  if omitted, then it calls get_default_engine()