Best practices when providing CMake functions in a library

The functions are always global, so any function defined in a file evaluated through find_package() will be available globally.

Moreover, the module file loaded through find_package() is evaluated in the scope of the caller. So, any variable set or updated as part of this evaluation will be visible by the caller.