Small fixes to build with LLVM top-of-tree (now numbered as version 3.3)
merge
Fix logic for ordering of struct declarations in generated header files.

When a struct had an array of another struct type as a member, we weren't
detecting that the struct type in the array needed to be declared before the
enclosing struct type.

Fixes issue #408.
Merge pull request #409 from mmp/master

Bugfix for issue #408.
Fix to build with 3.2.  LLVM API Change?