chanserv/{op,voice,halfop,protect,owner}: deduplicate code

This moves the function to actually perform the operation into a new,
generalized module, chanserv/op_core; op, voice and friends just call
a function from that module with the appropriate parameters.