Build error on master branch
Hey @dom96, I'm trying to get testing up and running as per our discussion on the forum. Compilation went somewhat smoothly for the backend until this error:

Edit: looks like compilation is fine, but trying to run `src/forum` throws the error, my mistake.

```bash
$ nimble backend
  Executing task backend in /home/joey/Downloads/nimforum/nimforum.nimble
  Verifying dependencies for nimforum@2.0.0
      Info: Dependency on jester@#64295c8 already satisfied
  Verifying dependencies for jester@#64295c8
      Info: Dependency on httpbeast@any version already satisfied
  Verifying dependencies for httpbeast@0.1.0
      Info: Dependency on asynctools@any version already satisfied
  Verifying dependencies for asynctools@0.1.0
      Info: Dependency on asynctools@any version already satisfied
  Verifying dependencies for asynctools@0.1.0
      Info: Dependency on bcrypt@#head already satisfied
  Verifying dependencies for bcrypt@#head
      Info: Dependency on hmac@#9c61ebe2fd134cf97 already satisfied
  Verifying dependencies for hmac@#9c61ebe2fd134cf97
      Info: Dependency on nimSHA2@any version already satisfied
  Verifying dependencies for nimSHA2@0.1.1
      Info: Dependency on sha1@any version already satisfied
  Verifying dependencies for sha1@1.1
      Info: Dependency on recaptcha@1.0.2 already satisfied
  Verifying dependencies for recaptcha@1.0.2
      Info: Dependency on sass@#649e0701fa5c already satisfied
  Verifying dependencies for sass@#649e0701fa5c
      Info: Dependency on karax@#d8df257dd already satisfied
  Verifying dependencies for karax@#d8df257dd
      Info: Dependency on webdriver@#a2be578 already satisfied
  Verifying dependencies for webdriver@#a2be578
  Compiling src/forum.nim (from package nimforum) using c backend
Hint: used config file '/home/joey/Nim/config/nim.cfg' [Conf]
Hint: used config file '/home/joey/Downloads/nimforum/src/nim.cfg' [Conf]
Hint: system [Processing]
Hint: forum [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: bitops [Processing]
Hint: algorithm [Processing]
Hint: unicode [Processing]
Hint: times [Processing]
Hint: posix [Processing]
Hint: ospaths [Processing]
Hint: md5 [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: db_sqlite [Processing]
Hint: sqlite3 [Processing]
Hint: db_common [Processing]
Hint: scgi [Processing]
Hint: sockets [Processing]
Hint: openssl [Processing]
Hint: dynlib [Processing]
Hint: asyncio [Processing]
Hint: jester [Processing]
Hint: net [Processing]
Hint: nativesockets [Processing]
Hint: options [Processing]
Hint: typetraits [Processing]
Hint: sets [Processing]
Hint: re [Processing]
Hint: pcre [Processing]
Hint: rtarrays [Processing]
Hint: tables [Processing]
Hint: uri [Processing]
Hint: mimetypes [Processing]
Hint: asyncnet [Processing]
Hint: asyncdispatch [Processing]
Hint: heapqueue [Processing]
Hint: lists [Processing]
Hint: asyncstreams [Processing]
Hint: asyncfutures [Processing]
Hint: deques [Processing]
Hint: cstrutils [Processing]
Hint: selectors [Processing]
Hint: epoll [Processing]
Hint: macros [Processing]
Hint: logging [Processing]
Hint: httpcore [Processing]
Hint: asyncfile [Processing]
Hint: errorpages [Processing]
Hint: htmlgen [Processing]
Hint: utils [Processing]
Hint: cgi [Processing]
Hint: cookies [Processing]
Hint: request [Processing]
Hint: httpbeast [Processing]
Hint: future [Processing]
Hint: osproc [Processing]
Hint: streams [Processing]
Hint: cpuinfo [Processing]
Hint: linux [Processing]
Hint: parser [Processing]
Hint: patterns [Processing]
Hint: sequtils [Processing]
Hint: random [Processing]
Hint: rst [Processing]
Hint: rstast [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: parsejson [Processing]
Hint: recaptcha [Processing]
Hint: httpclient [Processing]
Hint: base64 [Processing]
Hint: sugar [Processing]
Hint: strformat [Processing]
Hint: auth [Processing]
Hint: bcrypt [Processing]
Hint: hmac [Processing]
Hint: sha1 [Processing]
Hint: nimSHA2 [Processing]
Hint: endians [Processing]
Hint: email [Processing]
Hint: smtp [Processing]
Hint: utils [Processing]
Hint: rstgen [Processing]
Hint: highlite [Processing]
Hint: xmltree [Processing]
Hint: htmlparser [Processing]
Hint: parsexml [Processing]
Hint: karaxutils [Processing]
Hint: error [Processing]
utils.nim(58, 38) Warning: use getInt or getBiggestInt instead; getNum is deprecated [Deprecated]
utils.nim(58, 38) Warning: use getInt or getBiggestInt instead; getNum is deprecated [Deprecated]
utils.nim(70, 30) Warning: use getInt or getBiggestInt instead; getNum is deprecated [Deprecated]
utils.nim(70, 30) Warning: use getInt or getBiggestInt instead; getNum is deprecated [Deprecated]
utils.nim(57, 28) Hint: simpleGetOrDefault(root, "smtpAddress") --> 'getOrDefault(root, "smtpAddress")' [Pattern]
utils.nim(58, 25) Hint: simpleGetOrDefault(root, "smtpPort") --> 'getOrDefault(root, "smtpPort")' [Pattern]
utils.nim(59, 25) Hint: simpleGetOrDefault(root, "smtpUser") --> 'getOrDefault(root, "smtpUser")' [Pattern]
utils.nim(60, 29) Hint: simpleGetOrDefault(root, "smtpPassword") --> 'getOrDefault(root, "smtpPassword")' [Pattern]
utils.nim(61, 29) Hint: simpleGetOrDefault(root, "mlistAddress") --> 'getOrDefault(root, "mlistAddress")' [Pattern]
utils.nim(62, 35) Hint: simpleGetOrDefault(root, "recaptchaSecretKey") --> 'getOrDefault(root, "recaptchaSecretKey")' [Pattern]
utils.nim(63, 33) Hint: simpleGetOrDefault(root, "recaptchaSiteKey") --> 'getOrDefault(root, "recaptchaSiteKey")' [Pattern]
utils.nim(64, 22) Hint: simpleGetOrDefault(root, "isDev") --> 'getOrDefault(root, "isDev")' [Pattern]
utils.nim(65, 23) Hint: simpleGetOrDefault(root, "dbPath") --> 'getOrDefault(root, "dbPath")' [Pattern]
utils.nim(69, 19) Hint: simpleGetOrDefault(root, "ga") --> 'getOrDefault(root, "ga")' [Pattern]
utils.nim(70, 21) Hint: simpleGetOrDefault(root, "port") --> 'getOrDefault(root, "port")' [Pattern]
Hint: buildcss [Processing]
Hint: sass [Processing]
Hint: libsass [Processing]
Hint: threadlist [Processing]
Hint: category [Processing]
Hint: user [Processing]
Hint: postlist [Processing]
Hint: post [Processing]
Hint: header [Processing]
Hint: profile [Processing]
Hint: search [Processing]
forum.nim(757, 1) template/generic instantiation from here
lib/core/macros.nim(456, 52) template/generic instantiation from here
lib/core/macros.nim(449, 9) Warning: reqMeth is deprecated [Deprecated]
forum.nim(757, 1) template/generic instantiation from here
lib/core/macros.nim(456, 52) template/generic instantiation from here
lib/pure/asyncmacro.nim(304, 33) Warning: 'sendResetPassword' is not GC-safe as it performs an indirect call here [GcUnsafe2]
forum.nim(757, 1) template/generic instantiation from here
lib/core/macros.nim(456, 52) template/generic instantiation from here
lib/pure/asyncmacro.nim(264, 31) Warning: 'matchIter' is not GC-safe as it calls 'sendResetPassword' [GcUnsafe2]
main.tmpl(5, 6) Hint: 'forum.genRSSHeaders(c: TForumData)[declared in main.tmpl(5, 5)]' is declared but not used [XDeclaredButNotUsed]
CC: nimforum_forum
Hint:  [Link]
Hint: operation successful (125108 lines compiled; 2.539 sec total; 220.484MiB peakmem; Debug Build) [SuccessX]
   Success: Execution finished
forum.nim(752)           forum
utils.nim(53)            initialise
utils.nim(56)            loadConfig
json.nim(780)            parseFile
Error: unhandled exception: cannot read from file: /home/joey/Downloads/nimforum/forum.json [IOError]
stack trace: (most recent call last)
home/joey/Downloads/nimforum/nimforum.nimble(30) backendTask
home/joey/Nim/lib/system/nimscript.nim(237) exec
home/joey/Nim/lib/system/nimscript.nim(237, 7) Error: unhandled exception: FAILED: ./src/forum
```

It looks like it's expecting a file `forum.json` to exist, but it's not there. I tried taking the one from nimcache and putting it in the expected path, but that causes another issue, so maybe that's not the right file. Is there something I'm missing? The commands I ran to get the repo were:

```bash
sudo apt install libsass-dev sqlite3
git clone https://github.com/nim-lang/nimforum
cd nimforum
git submodule update --init --recursive
nimble backend
```

I'm on Ubuntu 18.04 x64, running the latest dev version of Nim.