An implementation of timer which supports GCD queue with some practical features like pause/resume in Objective-C and Swift