Implementing ability to load custom config files

Now stable!

This is for creating/loading/saving OTML config files on the fly, rather than just have the one main setting file. Would be good to get some people testing this branch with me.

**Usage:**
```lua
local config = g_configs.create("/file.otml") -- creates and loads the file given.
config:set(key, value) -- make a change to the otml
config:save() -- saves changes
config:unload() -- or g_configs.unload(config:getFileName()) unloading the config
config = nil -- ensure there is no reference
config = g_config.load("/file.otml") -- load the config file again
```

**Todo:**
- [x] Decouple configs for ConfigManager to manage.
- [x] Make g_settings a wrapper for the m_settings ConfigPtr
- [x] Bind functionality for lua usage.
- [ ] Test & review thoroughly.

Feel free to help out with this if you like :) Open to any better approaches ofc.