Add comment about sizecheck in Cons.h

The existing comment was from the time when the size of the Cons cell
was based on good luck and a positive attitude. Mention the fact we have
compiler time checks now.
Rename the allocator concept of Cons to Cell

Before they were officially called "cons cells". After the recent value
renaming they're more properly called "value cells" or just "cells".
Cons cells now refer to cells created from (cons), i.e. pairs.
Fix typo in test name
Change TBAA indexes to Long

Record fields will consume a large number of TBAA indexes. LLVM should
theoretically be fine with 64bit indexes so support them on the Scala
side
Support TBAA for record types

Assume every record field cannot alias anything except itself. This is
a very strong assumption but we can guarantee it because we don't
allow arbitrary pointer manipulation that would allow a program to
overlap a record with other memory.

This is bordering on microoptimization but will become important if
mutables are re-implemented on top of records.
Fix search-and-replace type

bativeValue => nativeValue
Fix string format for cell temporaries

This was broken in the cons renaming
Optimizations for record field storage

- If a record only has one field then store it inline in the record
  cell. This should significantly improve the performance of boxes as
  well as closures over a single value.

- If a record has no fields then don't bother storing a null value to
  the record data pointer. Throw an ICE if its accessed later.