started to change the internal structure.

I want to make the module more efficient and the code more
understandable.

One of the main intended improvements is to use a hash map
as the internal data structure, instead of using an array and
an object as before, which resulted in duplicate data.
Keys of the map will be the tasks, and values the expiry times.

Currently all the changes will keep backwards compatibility,
as only internal implementation will be modified.

Also continuing to document the code.