Support enum, #pragma pack(); bugfix

Add support for:
- enum
- #pragma pack(), #pragma pack(<number>), #pragma pack(push[,<number>]),
#pragma pack(pop)

Fix:
- Generate the missing "extern _c"/"extern $c" for a C file containing
just "extern int c; int* pc = &c;"

Update tests' asm code