Refactor string header to put cap at offset 8

Summary: Getting ready for using capCode and kind at offset 11.
This removes the coupling between StringSlice and StringData layout,
and factors the capCode logic out of packed-array-defs.h

Reviewed By: @jdelong

Differential Revision: D1646291