Split the reduce_fcurve function into smaller functions, and moved the cache varaibles to the operator exec function