smaller executables

- Move all tables into functions or structs so
  that dmd's multilib will put them into separate
  archive objects. This allows the linker to only
  pick the tables that are actually used.