Complete Refactor

This is a complete reorganization of the current file structure. In the process I had to make a few more things 'public' since all the implementations were in one file allowing for shared knowledge.

I don't know if this is something you're looking to do, however I would like to start the discussion about it. This PR supersedes all my other pull (https://github.com/cruffenach/CRToast/pull/122, https://github.com/cruffenach/CRToast/pull/121, https://github.com/cruffenach/CRToast/pull/120, https://github.com/cruffenach/CRToast/pull/115) requests as well as adds a few other features from other users that have mentioned changed in the issues (https://github.com/miwillhite/CRToast/commit/498a731fb818c3aa7e2e5cf2b6a5bb56c8befc9f, https://github.com/cruffenach/CRToast/pull/69). I'm not 100% sure the changes in https://github.com/cruffenach/CRToast/pull/69 are successful & still pass but thats another issue.

Is this something that you would like to do? I feel that it adds a few requested features as well as fixes a few bugs. Maybe not in the same way but I tried to stay consistent to the current codebase. [issues with the current code format have been brought up](https://github.com/cruffenach/CRToast/issues/124) so i felt that refactoring was a decent idea even if it does come at a slight loss of elegance.

This is a gargantuan PR to look over so I totally understand not being super stoked about seeing it :grin: sorry.