Enums that refer to other enum values fail
In nuklear.h, one enum refers to another:

```c
enum nk_panel_type {
    NK_PANEL_NONE       = 0,
    NK_PANEL_WINDOW     = NK_FLAG(0),
    NK_PANEL_GROUP      = NK_FLAG(1),
    NK_PANEL_POPUP      = NK_FLAG(2),
    NK_PANEL_CONTEXTUAL = NK_FLAG(4),
    NK_PANEL_COMBO      = NK_FLAG(5),
    NK_PANEL_MENU       = NK_FLAG(6),
    NK_PANEL_TOOLTIP    = NK_FLAG(7)
};
enum nk_panel_set {
    NK_PANEL_SET_NONBLOCK = NK_PANEL_CONTEXTUAL|NK_PANEL_COMBO|NK_PANEL_MENU|NK_PANEL_TOOLTIP,
    NK_PANEL_SET_POPUP = NK_PANEL_SET_NONBLOCK|NK_PANEL_POPUP,
    NK_PANEL_SET_SUB = NK_PANEL_SET_POPUP|NK_PANEL_GROUP
};
```

The second enum wrapper fails since Nim complains:

```
/home/genotrance/programming/nimdevel/lib/core/macros.nim(1663, 42) Error: type mismatch: got <panel_set, panel_type>
but expected one of:
proc `or`(x`gensym508703: panel_set; y`gensym508704: int): panel_set
  first type mismatch at position: 2
  required type for y`gensym508704: int
  but expression '4' is of type: panel_type
proc `or`(x`gensym508707, y`gensym508708: panel_set): panel_set
  first type mismatch at position: 2
  required type for y`gensym508708: panel_set
  but expression '4' is of type: panel_type
139 other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them

expression: 240 or 4
```