Add the list functions that will be used for memory pools.
Instead of using macros, use iterators built-in on each list for filtering and traversing.
Remove symlinks and make codebase use common modules instead.
Allow current item pointer to have custom type.
Change the pool list initializations.
Add memory and data-related implementations for handling game data.