Use LowFuncPtr for Class method table

Summary: Probably uses less memory or something.

Reviewed By: @edwinsmith

Differential Revision: D1587099
Shave 32 bytes from Class using LowPtr

Summary: Bytes == bad.

Reviewed By: @jdelong

Differential Revision: D1587563
Offload rarely-used members of Class to Class::ExtraData

Summary: Data members for traits (which are flattened in repo mode), reflection
methods, and builtins don't need to be present for all Classes in the
common case.  Bytes == bad.

Also includes two auxiliary changes:
- Add a range() method to IndexedStringMap.
- Add a DefaultPtr type to shortcut `px ? px->m_f : my_default`.

Reviewed By: @jdelong, @elgenie

Differential Revision: D1591981