Shrink StringData::m_cap to 24 bits to make room for kind

Summary: Use the packedCap trick to reduce StringData's cap field.
Fixes a bug in smartMallocSize() where the debugHeader recorded
the requested capacity instead of the returned capacity.

Reviewed By: @jdelong

Differential Revision: D1646907