This change allows ufunc operand flags to be set in addition to the
default operand flags set by the nditer object. For example, after
calling PyUFunc_FromFuncAndData() to create a ufunc object, the first
operand can be set to be read/write like so:

ufunc->op_flags[0] = NPY_ITER_READWRITE

Setting flags for output operands is not supported at this time and
will raise an exception.

This change also allows the global nditer flags to be set, so after
setting the read/write flag, the reduce ok flag could be set like so:

ufunc->iter_flags = NPY_ITER_REDUCE_OK
minor fixes for previous ufunc operand flag change
initialize ufunc op_flags pointer in frompyfunc()
correctly initialize op_flags and iter_flags in frompyfunc()