Add support for visual-regexp, which is totally awesome.
Close untitled documents as well as files.
Kill scratch too.
Tweak behavior of *scratch* and untitled buffers.
Streamline creation of scratch buffers.

The logic on this was a bit scattered before, but I've found a nice
concise way of closing unmodified untitled buffers and then opening
either "Untitled Buffer 1" or "*scratch*" as appropriate if the mode
is being enabled or disabled.

By connecting to global-gedit-mode-hook I avoid some bugs where
certain buffers disable gedit-mode locally, which triggers
gedit-mode-hook unhelpfully.

This commit also introduces some basic tabbar support.
Require some packages.
Group tabs more like GEdit.
Navigate tabs more like GEdit.
Hide SPEEDBAR from tabbar.
Modify description
Drop dependency on Common Lisp-isms.

Reimplemented (remove-if) and (remove-if-not) in pure elisp, avoiding
a dependency on CL.
Add an idle timer for refreshing the speedbar.

This is different than speedbar-auto-refresh, because the auto refresh
has the annoying property of changing the speedbar to only display the
immediate folder that my current buffer lives in, often hiding many
other folders that I want to keep in view. As coded, this causes the
speedbar to simply check for the presence of new files, without
changing which directory is displayed.

The end result is that I can create new files outside of emacs, and
the speedbar will update to show them after a reasonably short delay.
Apparently linewrapping this is invalid.