'None' Optional models are excluded from queries, including selects
Using norm version 2.1.1.

Minimal reproduction:

```nim
import logging, options
import norm/[model, sqlite]

addHandler(newConsoleLogger())

type
  A = ref object of Model
    a: int
  B = ref object of Model
    a: Option[A]
    b: int

func newB(): B = B(a: none A, b: 0)

when isMainModule:
  withDb:
    db.createTables(newB())
```

I'd expect it to create tables for both `A` and `B` here, as `B` depends on `A`, but the output I get is only (formatted for readability):

```
DEBUG CREATE TABLE IF NOT EXISTS "B"(
  a INTEGER,
  b INTEGER NOT NULL,
  id INTEGER NOT NULL PRIMARY KEY,
  FOREIGN KEY(a) REFERENCES "A"(id)
)
```

The same behavior is observed with querying, updating, etc:

```nim
discard newB().dup:
  db.select("B.b > ?", 0)
```

results in not joining onto the `A` table:

```
DEBUG SELECT "B".b, "B".id FROM "B"  WHERE B.b > ? <- [0]
```

For comparison, changing `B.a` to be just an `A` and adjusting `newB()` accordingly results in the following output instead, matching the README:

```
DEBUG CREATE TABLE IF NOT EXISTS "A"(
  a INTEGER NOT NULL,
  id INTEGER NOT NULL PRIMARY KEY
)
DEBUG CREATE TABLE IF NOT EXISTS "B"(
  a INTEGER NOT NULL,
  b INTEGER NOT NULL,
  id INTEGER NOT NULL PRIMARY KEY,
  FOREIGN KEY(a) REFERENCES "A"(id)
)
DEBUG SELECT "A".a, "A".id, "B".b, "B".id FROM "B" JOIN "A" ON "B".a = "A".id WHERE B.b > ? <- [0]
```