typechecker: use a type to represent function arity

Summary: ... the arity information for a function is easier to
 consider when code is being written as a pattern match instead of 2-3
 correlated fields (i.e ##1000## arguments meaning ##...##). This diff
 is a net savings in lines of code and sets up future refactoring to
 track the type-hints on varidic params. Also, ensure that the
 functional programming term "arity" doesn't appear in error messages
 meant for typechecker users

Reviewed By: @jwatzman

Differential Revision: D1435310
Combine unit repo table columns into one blob

Summary: It's a lot easier to add things if we combine this all into one
blob.

Reviewed By: @markw65

Differential Revision: D1434551