This module will hold all the core mechanincs so that we can abstract
things further and allow for a better design of the main system. This
gives the freedom of moving the ui further from the logic and allows
for changing the ui in the future.
This would mean that we can use more dependency injection for the
slides instead of the slide needing to figure out which kind of item
to generate and make a slide from.
This is kinda a broken commit. There isn't any order to the adding of
the slide anymore. So it'll need to find a way of keeping track of
where all the current slides are and then insert the new ones in the
correct order while moving the others around as well.
In order to make slide_object dumber and and not need to keep track of
slide info, we are moving the business logic to slide_model so that
the model can keep track of whether presentations are ready to switch
and don't need to run reveal_next or something.
This is a big possible step. The issue is that Cargo can't link or see
some things quite the same as cmake. At the very least, the app is
building with very minimal cpp now.
This will start to allow us to have a much better data model for the
slides and service items. They can have a type associated with them
and parse which they are from this type.
There is some sort of problem. Somehow I sometimes get a signal 11
SEGV_MAPERR error and then it segfaults. *sigh*... So this function
needs some help yet.