Add DynamicInvoke

This adds a method for invoking the libsodium DLL dynamically, so we
don't need to double DllImport statements anymore. This should make the
code cleaner, and easier to maintain.