Change initialisation of structures

Use memset to clear entire structures at initial creation to zero, and
then populate values that should not be zero. Do this rather than
individually clear each structure member to zero.

This should be faster, plus it's safer when new structure members are
added because you don't have to remember to initialise them.