Modified the way workspaces_emacs.sh works. Now workspaces.sh has a simple extension mechanism that allows other modules to register hooks that are always called on entering and exiting a workspace. This simplifies having to add these calls into the individual workspace enter/exit scripts.