Rework visibility of specific functions and structs
Some structs and functions within metaolm are for internal use only and shouldn't be fully public, as they clutter the auto-generated documentation with content that an end-user of the library couldn't do anything with.
It also improves overall encapsulation with more strictly set visibility rights.