Initial work on authentication

Added another middleware that can be yielded by `engine` when there is
an API with `auth` key.

At the moment, that `auth` middleware only get OAuth's request token and
construct the authentication URL and put into the body of the response.
Support overriding full or part of cache

Using query string, if `override=true`, it will refresh the whole cache.
Otherwise, if `override` query value match part of the cache, that part is
retrieved again.