Refactor main timing.js object

* Use prototype pattern instead of module.
* Add JSDocs for the methods.
* Add more granularity to the methods.
* Slightly change the design of the overlay.