Add Ability to Remove Recent Workspace

Fix issue #1051 by providing a contextual menu
when right clicking a recent workspace.
Refactor Recent Menu Behavior

Update behaviors used to implement right click menu for a recent workspace to
reuse existing behaviors. Refactor the sidebar-menu behavior to utilize the
same on-menu behavior.
Remove extraneous behavior
Ensure destruction of recent workspaces
Fix Recent Workspace Delete

Remove the extra workspace delete function that is basically just
another name for the "file/delete!" function. This fixes the bug created
by trying to delete "path" when that variable doesn't exist.
Matching bracket highlighting to tomorrow-night
tabs.goto 8 goes to last tab
use :last
Improve docstring.
clojure-y name
Make msg* opts argument optional

To avoid compiler warnings, change the opts argument of notifos/msg* into an optional one.
Extend set-msg! with custom timeout

The function notifos/set-msg! accepts a :timeout key/value pair in the opts map
to set a custom timeout.
Display error message if OSX path sourcing fails

If the process spawned by behavior :lt.objs.proc/set-path-OSX fails, notify
the user and output the error to console.
make behavior :- negate at the object level. So if some behavior is added to a more general tag, e.g. :editor, you can disable it in :editor.markdown using the :- diff.

Signed-off-by: Chris Granger <ibdknox@gmail.com>
Merge branch 'master' of github.com:Kodowa/Light-Table-Playground
Improve extension support

Previously, extensions could be registered with MIME-type info and
editor tags only by the last segment of their filename. For example, the
extensions for the following files:

    index.html -> "html"
    index.html.erb -> "erb"
    Dockerfile -> nil

Supporting different extension types is useful, but blinding taking all
segments after the first dot isn't good either:

    i.like.to.name.files.with.periods.txt -> ".like.to..."

The solution is to create a series of file segments, from most specific
to least specific to check against. Taking our first examples again, we
get the following:

    index.html -> ["index.html" "html"]
    index.html.erb -> ["index.html" "html.erb" "erb"]
    Dockerfile -> ["Dockerfile"]

Now, if we look for registered "extensions" (these can be whole
filenames), we can take the first one we see. For example, .erb
represents a templating language often used in Ruby, and extensions
before .erb are the target file type and will often have markup for that
type. So, for a .html.erb file, you want to have :editor.html as a tag
for sure, but probably also :editor.erb. For all other .erb files, just
:editor.erb is needed. You could register both the extension .html.erb
and .erb. "index.html.erb" would find the former, while mail.txt.erb
would find the latter.

This should allow much more flexibility in registering extensions.
I specifically need this for a Hoplon plugin.
Fix leiningen detection in osx_deps.sh.

Current osx_deps.sh reports that Leiningen 2.2 is an old (1.x or 2.0) version. This changeset is a trivial tweak to make the version number detection a bit more robust.
update to wrench v1.5.6.

this release supports copying directories with the file modes intact and
fixes jetaggart/light-haskell#31.
Remove stray testing line
make select-all include the whole first line