The memory changes and multi-variant change had some merge glitches I missed. This fixes them so we actually get the cpu llm lib and best variant for the given system.
This switches darwin to dynamic loading, and refactors the code now that no static linking of the library is used on any platform