**DISCLAIMER**
createStore is a single reducer state machine. The concept here can be integrated with any state manager that can update and emits events when state changes.
*****************
Ever since the creation of react hooks I have started to question redux and react-redux.
Things I find weird about modern redux and react
1. Redux requires a top level provider
2. Any component connected to redux has to dirty check if the state it uses has changed when any reducer is emitted.
Main Goal Here:
1. Remove the provider
2. Split out reducers into separate stores so components only dirty check if it uses the data itself