Tweak fish_function_path loading

Change how the fish_function_path is modified to ensure there's no
duplicates even if the fish_function_path contained a path that matches
a repository's function path.

Force fish_function_path to be set globally to avoid issues if it was
originally set universally. This does not remove the universal variable,
but it does mean that once tacklebox is loaded, changes to the universal
variable won't affect the shell.