murmur: fix strict aliasing issue

Reviewer: @jnealtowns

If anyone else has dealt with this stuff before please feel free to review too.

C99 makes it illegal for different pointer types (with exceptions like char *)
to refer to the same memory. GCC interprets this very strictly, which caused
murmur_hash to return an incorrect result when inlined because it referenced
a struct using a uint32_t pointer.

Relevant section of the GCC manual: http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html