GCC 4.8 fixes and image extension update

GCC 4.8 seems to pick up uninitialized struct fields and raise them as `maybe-unintialized`, There were only a few places that hit this problem and I've fixed them where I can.

The main exception is https://github.com/PocketRent/hiphop-php/blob/98c009d297b732d7a9dee778a35ea8ba864fa90b/hphp/util/asm-x64.h#L2693, which seems to interact poorly with the optional template type pattern. In order to try and deal with this, I've wrapped just that block in a guard supressing the warnings and added a comment explaining. For some precendent, a similar guard block exists around the `folly::Optional` implementation as well for the same (or similar) reason.

The other change here is in the `image` extension, as it seems that the older API being used has been somewhat deprecated, with it existing in the both the header files and static library, but not the dynamic library. I've changed the offending code to use the newer API and everything still seems to work.

This has been tested on Debian Wheezy, with GCC 4.7.