Change cache-tag to use stable keys

The current cache-template tag generates cache keys based on the template name,
line number and possible additional keys. Especially the lineno make it hard to
have stable and predictable cache keys which can be invalidated from outside
the template when underlying data changes. Also, since the filename was used
the cache-tag was not usable when rendering a template directly from a string.

This commit changes the template tag to require a fragment name::
    {% cache timeout, "fragmentname" %}
    {% cache timeout, "fragmentname", "vary_on1", ... %}

and the cache key easily be generate via a new method::
    from flask.ext.cache import make_template_fragment_key
    make_template_fragment_key("fragmentname")
    cache.delete(key)

Backward incompatible change:
* {% cache timeout %} will no long work. Replace with {% cache timeout "fragmentname "%}
* Possible key collision for old keys if same fragment name is used.