Part way through refactoring code-base to use mutex and callbacks.

Notable Changes: Changed log function to accept predefined values, (AEON_INFO, AEON_WARNING, AEON_ERROR, AEON_FATAL), to future proof; added most of new directory functionality, added some new utility functions