Ask for `friendly dowload` API
It seems that there no one-step downlad api

I inspect jester.nim and found `sendStaticIfExists()` do something like downloading file. so I add one in jester.nim :

<pre>
#
# srcFileName search under paths one by one until found
# displayName display name when download in browser, set in header `Content-Disposition`, default = srcFileName
# paths: the src file is searched under it
# the mimetype is fixed as `application/octet-stream`
#
proc download*(response: jester.Response, srcFileName:string, displayName:string,
                        paths: seq[string]) {.async.} = #{.discardable.}
  var dn = displayName                        
  if displayName == nil: 
    dn =  srcFileName     
  var client = response.client
  var fn: string

  for p in paths:
    fn = p & "/" & srcFileName
    # echo "finding file ...", fn
    if os.existsFile(fn): 

      var fp = os.getFilePermissions(fn)
      if not fp.contains(fpOthersRead):
        await client.statusContent($Http403, error($Http403, jesterVer),
                         {"Content-Type": "text/html;charset=utf-8"}.newStringTable)
        return

      var file = readFile(fn)
 
      let mimetype = "application/octet-stream" #jes.settings.mimes.getMimetype(p.splitFile.ext[1 .. p.splitFile.ext.len-1])
      await client.statusContent($Http200, file, {
                                   "Content-Type": mimetype,
                                   "Content-Disposition":"attachment;filename=\"" & dn & "\""
                                    }.newStringTable)
      return
 
  # can not find file
  logging.error("can not find file: ",fn )
  await client.statusContent($Http404, error($Http404, jesterVer),
                    {"Content-Type": "text/html;charset=utf-8"}.newStringTable)
  return
</pre>
