Use a different HeaderKind for big malloc vs size-tracked objects

Summary: They both need a BigNode, however size-tracked allocations also
include their own headers. We need to tell them apart in order
to do anything with the payload, other than skip over it. For
example, a large object looks like this in memory:

  [BigNode][ObjectData][props...]

Reviewed By: @bertmaher

Differential Revision: D1711525

Signature: t1:1711525:1417544209:5a88f64c7ac53ed2b9c0abb2673c6020350f03f1
static_assert size of BuiltinFile matches PlainFile

Summary: since it inherits heapSize(), it better be the right answer.

Reviewed By: @markw65

Differential Revision: D1714352

Signature: t1:1714352:1417568641:7ded3a5e3a399e38eefa533f4e74a2a57cfb9041