I also made the documentation and name of file more generic as it works
for both zsh and bash. I removed the shebang since this file is simply
sourced by the calling shell and it doesn't have executable permissions
anyway.
The various functions were updated to return non-zero on errors in case
anyone uses goto in other scripts.
The logic for parsing ~/.goto to determine which aliases can be cleaned
was simplified into an awk script that removed the array manipulation
logic that was not zsh compatible.