devdocs notes on memory layout and runtime initialisation

Some notes I made while learning about runtime internals.
Maybe useful for other new developers.
But maybe misleading because eggnog :)

My reading of the code is that:
* there is not actually a jl_int16_t struct defined anywhere, so sizeof() this "struct" is not relevant (I used struct notation just as a convenient way to describe the layout of what ends up in memory as best as I can figure out).
* BOXN_FUNC(16, 2) in alloc.c means that 16-bit ints are allocate by alloc_2w (allocate two words).
* Note also: BOXN_FUNC(8,  2), BOXN_FUNC(16, 2), BOXN_FUNC(32, 2), BOXN_FUNC(64, 2)

As far as I can tell that means that in Julia, all boxed ints (8, 16, 32 and 64) consume 16 bytes. Am I missing a subtlety here?

(Note that I'm assuming a 64 bit platform)