Remove anonymous structs

On some compilers, the fact that there is a usage of an anonymous struct causes a warning. This change simply gives them names prior to the typedef.
Update structs to have underscore prefixes
Merge pull request #76 from itay/patch-2

Remove anonymous structs