Use pointers in the bit-fields

 - The plan is to take advantage of aliasing so we only need one
   set of bitfield tables for reading and writing, rather than two
Rework when the bit-field tables are defined

 - Rename populate_link_tables to define_link_tables
 - Run it in the constructor, since we are not filling values, but
   pointers.