Wrapper around NSTimer for repeated operations, with both block and delegate API