improvement on generating ccomp compatible code

seems ccomp 2.0 doesn't support two kinds of codes below:

(1) a field of a packed struct can't be used as an array index, e.g.:

$ cat foo.c
struct {
  int f3;
} a;
int b[1];
void func_1() { b[a.f3] = 0; }
$ ccomp -fall foo.c
In function func_1: Unknown field f3

(2) we can't initialize a global var that is type of packed struct and
the packed struct has any struct field, e.g.:

$ cat foo.c
struct S1 {
  int f0;
};

struct S2 {
  struct S1 f0;
};

struct S2 g = {{1}};
int main(int argc, char *argv[])
{
  /*
    ok to have local initializer...
    struct S2 l = {{1}};
    l.f0.f0;
  */
  g.f0.f0;
  return 0;
}
$ ccomp -fall foo.c
packed.c:11: : Unsupported initializer for packed struct.
1 error detected.

This commit handles the above cases.

When --ccomp is passed, Csmith will:

* disallow the case (1);

* only allow packed aggregates that have scalar fields.