The async threading pattern from Nim In Action doesn't work in a jester handler
The `while true: if flowVar.isready():  body else: yield sleepAsync 10` pattern doesn't work in a jester handler. Here's a minimal case:

```nimrod
import asyncdispatch, threadpool, random, math, logging, json, strutils
import jester

var idCounter: int
proc newId(): int =
  idCounter += 1
  result = idCounter
let jesterPort* = 5000

proc doMath(): float =
  result = random(1000.0)
  for i in 1..100000:
    if result == 1.0:
      result = random(1000.0)
    result = sqrt(result)

when isMainModule:

  settings:
    port = Port(jesterPort)

  routes:

    get "/sample":
      let requestId = $newId()
      info "[$1] Received request." % requestId

      let fv = spawn doMath()
      while true:
        if fv.isReady():
          var
            flowResult = ^fv
            r = $(% flowResult)
          # If so, execute the handler body.
          info "[$1] Completed request." % requestId
          resp(r, contentType = "application/json")
        else:
          info "[$1] Waiting..." % requestId
          # Otherwise, yield in order to return control back to the main event loop.
          yield sleepAsync 10


  runForever()
```

I would expect this to spawn a thread for the math proc, and then kick back control to the event loop, allowing jester to serve another request. However, when testing with `httperf` -- with the following invocation (which starts sessions of 100 simultaneous requests each): 

```
httperf --hog --port 5000  --add-header 'Content-Type: application/json\n' --add-header 'Content-Length: 2963\n' --add-header 'Accept: application/json\n' --uri '/sample' --wsess 1000,100,0
```

We see the following log output:

```
...
INFO [10737] Received request.
INFO [10737] Waiting...
INFO [10737] Completed request.
INFO [10738] Received request.
INFO [10738] Waiting...
INFO [10738] Completed request.
INFO [10739] Received request.
...
```

In other words, it always starts, waits for, and completes requests sequentially - never starting a request, waiting, and then starting another waiting request in the jester routes.

----

Here's another sample (roughly equivalent) that illustrates the same behavior:

```nimrod
import asyncdispatch, threadpool, random, math, logging, json, strutils
import jester

var idCounter: int
proc newId(): int =
  idCounter += 1
  result = idCounter
let jesterPort* = 5000

proc doMath(): float =
  for i in 1..100000:
    let n  = random(1000.0)
    result = sqrt(n)

proc yieldMath(): Future[float] {.async.} =
  let requestId = $newId()
  info "[$1] Beginning new yield." % requestId
  let fv = spawn doMath()
  while true:
    if fv.isReady():
      info "[$1] Completed yield." % requestId
      return ^fv
    else:
      info "[$1] Awaiting yield." % requestId
      await sleepAsync 1


when isMainModule:

  settings:
    port = Port(jesterPort)

  routes:

    get "/sample":
      let
        n = await yieldMath()
        value = $(%n)

      resp(value, contentType = "application/json")

  runForever()
```