Minor optimisation
Rename the toast "id" concept to "index" because it's mostly used as a literal index (for ordering of the toasts in GUI)
 And I need to recycle the "id" keyword to be used as unique string identifiers
Rename "id" variable to toastCounter
Revert "Rename the toast "id" concept to "index" because it's mostly used as a literal index (for ordering of the toasts in GUI)"
Because I was wrong, the id was effectively used as a proper 'id'

This reverts commit 0e11c0d00fbb0645e1147407d49a9ae8a433ba1c.
Add ability to specify a toast id from the service caller
Rename variable
Add ability to give a toast definition by object instead of argument list
Add ability to find a toast by id
Also returns the created toast object after creating a new 'notification' toast
Add ability to edit a toast object by id
Make #removeToast() return the deleted toast object
Allow timeout value that are numeric strings
Remove comment
Stop the associated timer of a removed toast
When trying to add a new toast with an existing id that already exists, then edit the existing toast instead
Move the 'edit' algorithm within the directive
Fix issue where hovering a toast will reset the timer, but only using the default timeout delay instead of the configured one
Move code that sets the default toast properties to its own function
Use it for both add/edit operations
If the current toast has a timeout setting and is still in the list of active toasts, then we can restart it