Infrastructure for displaying scm info in prompt + implemented for git and svn

this should not break the old way of putting git info in the prompt.

Also changed awesomepanda theme to use the new scm architecture.

for users:
this works the same as plugins: the scms variable is set in ~/.zshrc with a list of SCM for which info should be displayed in the prompt, as simple as that.

for theme developers:
instead of calling the git_prompt_info function, you can call the get_scm_prompt, which will display info for all the scms in the scms variable.
the following variables can be used in the old git-way:

ZSH_THEME_SCM_PROMPT_PREFIX: before everything but the scm's name (svn, git, ..)
ZSH_THEME_SCM_PROMPT_SUFFIX: after everything
ZSH_THEME_SCM_PROMPT_DIRTY: displayed when the repo is dirty
ZSH_THEME_SCM_PROMPT_CLEAN	displated when the repo is clean

by default, the name of the scm (git, svn, ...) is not displayed before the scm info, but this can be changed by setting the ZSH_THEME_SCM_DISPLAY_NAME to 1.

for scm-plugin developers:
to make an scm plugin with the name 'foo':
add a script called 'foo.scm.zsh' in to the scm folder. this script has to contain two functions:
    scm_in_foo_repo: checks wether we are in a foo repo, usually by checking if a .foo folder is present
    scm_foo_prompt_info: returns the prompt which follows the rules outlined above (in the "for theme developers"-section)
Added a function to extract various archives.
Added very basic hg scm plugin. Compared to git and svn it's very slow.

todo: look for a faster way to get the status (dirty/clean)
Merge branch 'hg_scm_plugin' into mine
Merge branch 'svnplugin' into mine

Conflicts:
	themes/awesomepanda.zsh-theme
Fixed bug where a directory under two kinds of SCM, would break the prompt.
Merge branch 'scm' into mine
Added plugin for switching between shell sessions whilst maintaining the current working directory.

Use sd or save_dir to save out the current dir and gd or get_dir to chage to the last saved directory.
Merge branch 'savedir' into mine
Merge branch 'hg_scm_plugin' into scm
Fixed bug in git scm plugin where the prompt info would not be displayed in subdirs.
Merge branch 'scm' into mine
Merge branch 'master' into mine

Conflicts:
	lib/aliases.zsh
                removed alias for 'x'
	lib/theme-and-appearance.zsh
                ???
Fixed bug with .hg/branch file

Apparently this fiole isn't always there, f.e when using hg from Netbeans. this put "no branch" when no branch is selected.
Merge branch 'hg_scm_plugin' into mine
Added cache to .gitignore.
Fixed bug with .hg/branch file

Apparently this file isn't always there, f.e when using hg from Netbeans. this assumes default as branchname.
Merge branch 'mine' into hg_scm_plugin

Conflicts:
	scm/hg.scm.zsh
Changed glg alias (old version is now gls)
Merge branch 'master' into mine

Conflicts:
	plugins/git/git.plugin.zsh