Alignment issues

Using emplace() 4 bytes after the beginning of a memory block returned
from malloc breaks the required 8 byte alignment in 64-bit environments.

Replaced the 4 bytes with 8.

Also made weak reference count semantics disable in release mode,
resolving an assert failing without -debug.