Unique and Foreign Key pragma ?
Hello,

I don't see any foreign key or unique pragma for Model definition.

I know that for Foreign key are handled by using a Model as a field.

```nim
type
  A = ref object of Model
    field : string # stirng of size 1024*1024*1024

  B = ref object of Model
    a: A
```

But this approach can have some issues (unless I'm mistaken): 
* You have to load the full object in memory. For large objects (that can also contains foreign key) it's a problem.
* You can't create foreign key on anything else than the id field.

I think there are valid use case for wanting this :   
```nim
type
  A = ref object of Model
    field : string 
    name {. unique .}: string

  B = ref object of Model
    a {. fk: A.id .}: int
```

Or this : 
```nim
type
  A = ref object of Model
    name {. unique .}: string

  B = ref object of Model
    a {. fk: A.name .}: int
```
