Pool/Index data is not aligned

As mentioned in #2580, there are some crashes on sparc machines. Turns out that for 32-bit builds, the ```data``` member of ```git_pool_page``` is sitting on a 4-byte boundary instead of an 8-byte boundary.

Seems like there are more crashes, independent of this one, tracking them down.

Update:
There were some crashes in the index test cases as we were casting the buffer contents directly to structs. What sucks here is the fact that the structures are of variable size, due to the path member. 
Hmm. I tried to look at that build log and I'm not seeing this error - maybe I'm looking at the wrong thing?

Anyhow, that warning is actually pretty serious IMO. The paths that use stack-based patches and the paths that use heap-based patches need to be very careful about this and if there is a case where the code allows a clever compiler to break this assumption, then we need to fix it.

That being said, I don't think this particular instance in `git_diff_foreach` is the culprit because there is no path to `git_patch_free` here that would bypass the existing `memset`. There is no reason to revert this - it does no harm. However, if there is a bug the code paths from that warning (i.e. in `diff_from_sources`) then there is probably more work to do to fix it.

Did this particular additional `memset` make those warnings go away? That would be mystifying to me.