Asynchttp client fix: close socket after calling ssl_shutdown

This is an extension to dom96's recent fix in e6245674f24616ab940dee79883c6b18ac182d2e (thanks by the way). The following snippet was still failing as the socket was being closed too early:

```nimrod
import httpclient
import asyncnet, asyncdispatch
import os


proc main() {.async.} =
  var client = newAsyncHttpClient()

  var resp = await client.request("https://cowboycoders.org")
  echo("Got response: ", resp.status)

  resp = await client.request("https://github.com/")
  echo("Got response: ", resp.status)


waitFor main()

```
I also reworked the SSL error to Exception mapping (I hope this ok).