Refactoring plugin installation

I think I am fine for changing it so it only does the ln if for some reason the symlink does not already exist.

Also open to committing /public/plugins/.gitignore into the repo so the folder is always there and then we can get rid of the mkdir.

This is a very very fiddly change though I am not super comfortable accepting a first time PR for it.