Initial dogpile.cache setup for application using Memcached backend.
Add MD5 key mangler for cache region.

Since our cache key will usually be a long string, the key mangler
will turn them into an MD5 hash before saving into the cache backend.
Implement fragment cache for Jinja2 templates.
Mark cache as stale on application startup.

Also see: http://dogpilecache.readthedocs.org/en/latest/api.html

In short, `invalidate()` don't actually do anything with the data
but only mark `cache_region` instance to no longer use cache data
created prior to the time `invalidate()` was called.

This allow us to keep the cache fresh in case application was updated.
Add test case for Jinja2 dogpile cache extension.
Merge branch 'feature/dogpile-cache' into develop