Update setup-linux.sh

improve user/group creation, script runnable from elsewhere, add error function, etc.