Implement general selectors for overloaded builtins

- This allows to avoid up-front declaration of operator arity.  It
  also makes it possible to have non-uniform selection profiles (such
  as T_DIE T_CLOSURE that we need for integrate), and to mix several
  arities in one dispatch table (also useful for integrate).