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
Tidy up init-css.el
Load magit-svn after magit-key-mode, not magit, to avoid race condition
Move rails code in init-ruby into init-rails
Also bind M-S-{up,down} to move-text-{up,down} (closes #97)
More robustly add auto-complete to completion-at-point-functions
Remove C-n and C-p bindings for auto-complete: M-n and M-p are more standard
Set save-interprogram-paste-before-kill to t by default