Added regression test for struct initialization and some helper macros for writing regression test cases.

I found out from our test suite that private structure initialisation seems to fail in case if struct has table inside e.g.

typedef struct { float table[3]; } TestStruct;
__constant TestStruct constantStruct = { {1, 2, 3} };

__kernel foo() {
   int i = get_global_id(0);
   TestStruct privateStruct = { {1, 2, 3} };
   // this would fail here: assert(privateStruct.table[i] == constantStruct.table[i]);
}

I also added some helper macros to lessen boiler plate when writing regression tests.