Add slime contrib dir to load-path at top level

This ensures that when a version of slime is installed which includes
the contrib subdir, then libraries in that dir are placed on the
load-path ahead of any dangling 2010* versions of slime-repl,
slime-fuzzy etc.

See #90
Use "sanityinc/" namespace instead of "smp/"
Don't require slime-{fuzzy,repl} if the installed slime package has "contrib"

See #90
Don't require slime for clojure
Run prog-mode hooks in ruby-mode too
Use freshly-extracted paredit-everywhere-mode
Reorganise init-ido.el
Replace unreliable (featurep 'color) check in rainbow-mode package guard

See #91
Add a binding for vc-git-grep
Use haskell-mode for .ghci files
Add bug-reference-github, and keep github-related config together
Use switch-window package for improved "C-x o" support
Remove binding of C-` for flymake-goto-next-error
Check emacs version within eval-when-compile
Enable delete-selection-mode explicitly, though cua-mode already enables it
Correct note about running prog-mode-hook for ruby-mode
Enable subword-mode in haskell-mode
Don't use ghci-completion in Emacs < 24
Resume using undo-tree
Tidy up init-ruby.el