Switch funcproto to use an nd::array for its param_types
Switch the arrfunc to use a funcproto instead of a list of types