unsigned long is 8 bytes on 64-bit architectures

 ==13219== Conditional jump or move depends on uninitialised value(s)
 ==13219==    at 0x8058E50: LoadImage (image.c:453)
 ==13219==    by 0x80577FF: CreateIconFromFile.part.3 (icon.c:451)
 ==13219==    by 0x805B5CA: InitializeMenu (menu.c:78)
 ==13219==    by 0x805B6F2: InitializeMenu (menu.c:140)
 ==13219==    by 0x8063084: StartupRootMenu (root.c:61)
 ==13219==    by 0x804BAFE: main (main.c:534)
 ==13219==  Uninitialised value was created by a stack allocation
 ==13219==    at 0x4D07474: ??? (in /usr/lib/libpixman-1.so.0.32.4)
overlapping input and output strings

 ==13219== 450 errors in context 17 of 214:
 ==13219== Source and destination overlap in memcpy(0xbe92cc30, 0xbe92cc30, 56)
 ==13219==    at 0x402E3D0: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
 ==13219==    by 0x47BC994: fribidi_log2vis (in /usr/lib/libfribidi.so.0.3.5)
 ==13219==    by 0x8055357: GetStringWidth (font.c:170)
 ==13219==    by 0x805B6B7: InitializeMenu (menu.c:130)
 ==13219==    by 0x8063084: StartupRootMenu (root.c:61)
 ==13219==    by 0x804BAFE: main (main.c:534)

 ==13219== 53 errors in context 13 of 214:
 ==13219== Source and destination overlap in memcpy(0xbe92cb50, 0xbe92cb50, 20)
 ==13219==    at 0x402E3D0: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
 ==13219==    by 0x47BC994: fribidi_log2vis (in /usr/lib/libfribidi.so.0.3.5)
 ==13219==    by 0x80554EC: RenderString (font.c:249)
 ==13219==    by 0x804D761: DrawButton (button.c:164)
 ==13219==    by 0x80668CD: Draw (traybutton.c:301)
 ==13219==    by 0x806592F: StartupTray (tray.c:144)
 ==13219==    by 0x804BAD6: main (main.c:521)
Merge pull request #124 from bbidulock/valgrind

Several bug fixes discovered in valgrind runs