Notification Engine is a context-based stateful notification engine

## Usage:

To create a notification, first import the context component NotificationEngine via useContext hook and extract notify function from it.

- Call `notify`, magic starts to happen.
- Notifications are stored in localStorage, allowing for persistent notifications.

## Technical information:

The component is intentionally a hack to reduce amount of re-renders occuring in the DOM tree. Naive implementation caused some ruckus.

## Potential improvements:

- Make Provider component take a storage key argument, to allow operation of multiple notification engines at once.
- Add temporary notifications into the workflow
- Give notifications a lifespan