Como criar um Timer com resume(), pause() e reset() usando JavaScript

Um componente muito útil para auxiliar em slideshows, carousels, animações, etc.