This switches darwin to dynamic loading, and refactors the code now that no static linking of the library is used on any platform