Homestyx hydra

R1:2218caee0f50

Reduce the amount of boilerplate that implementing FerretInterface requires

Summary:
See brief discussion in D18554. All the index tables are the same for every application (and, at this point, seem unlikely to change) and we never actually pass these objects around (they're only used internally).

In some other cases (like Transactions) not every application has the same tables (for example, Differential has extra field for inline comments), and/or we pass the objects around (lots of stuff uses…
Repository: R1 hydra
Commit Date: Sep 7 2017