Handle the image ourselves to let the browser cache

We still store the image as base64 in the gist, but we provide local path
to the image, whose handler would convert it to binary and serve with
correct content type.

Also use the gist’s cache’s timestamp as `Last-Modified` header so the
browser can cache on `304` response.
Display local image when editing
Also display image’s server path when not logged in
Fix #41. Prevent storing image server path as `previous_path`
Merge branch 'feature/image-cache' into develop