Update cabbage.el

I was trying to make this work with EmacsPortable.App so I can try it out.  This should make loading only cabbage.el work just fine.  However, when I loaded it I got the error:

```
Debugger entered--Lisp error: (file-error "Cannot open load file" "perspective")
  require(perspective)
  (progn (add-to-list (quote load-path) library-dir) (require library))
  (if (and library-dir (file-directory-p library-dir)) (progn (add-to-list (quote load-path) library-dir) (require library)))
  (let* ((library-dir (cabbage-vendor-library-dir library))) (if (and library-dir (file-directory-p library-dir)) (progn (add-to-list (quote load-path) library-dir) (require library))))
  cabbage-vendor(perspective)
  eval-buffer(#<buffer  *load*-528408> nil "c:/EmacsPortable.App/Data/start/cabbage/lib/perspective.el" nil t)  ; Reading at buffer position 30
  load-with-code-conversion("c:/EmacsPortable.App/Data/start/cabbage/lib/perspective.el" "c:/EmacsPortable.App/Data/start/cabbage/lib/perspective.el" nil nil)
  load("c:/EmacsPortable.App/Data/start/cabbage/lib/perspective")
  eval-buffer(#<buffer  *load*-232598> nil "c:/EmacsPortable.App/Data/start/cabbage/cabbage.el" nil t)  ; Reading at buffer position 1547
  load-with-code-conversion("c:/EmacsPortable.App/Data/start/cabbage/cabbage.el" "c:/EmacsPortable.App/Data/start/cabbage/cabbage.el" nil nil)
  load("c:/EmacsPortable.App/Data/start/cabbage/cabbage")
  (progn (setq dir (replace-regexp-in-string ".el$" "" (nth 0 dir))) (load dir) (message "Loaded %s" dir))
  (if (= 1 (length dir)) (progn (setq dir (replace-regexp-in-string ".el$" "" (nth 0 dir))) (load dir) (message "Loaded %s" dir)))
  (let ((dir (file-expand-wildcards (format "%s/*.el" start-dir) t))) (if (= 1 (length dir)) (progn (setq dir (replace-regexp-in-string ".el$" "" (nth 0 dir))) (load dir) (message "Loaded %s" dir))))
  (cond ((file-exists-p (expand-file-name ".emacs" start-dir)) (load (expand-file-name ".emacs" start-dir)) (message "Loaded %s/.emacs" start-dir)) ((file-exists-p (expand-file-name "init.el" start-dir)) (load (concat (replace-regexp-in-string "/$" "" start-dir t t) "/init")) (message "Loaded %s/init" (replace-regexp-in-string "/$" "" start-dir t t))) ((file-exists-p (expand-file-name ".emacs.d/init.el" start-dir)) (load (expand-file-name ".emacs.d/init.el" start-dir)) (message "Loaded %s/.emacs.d/init.el" start-dir)) ((file-exists-p (expand-file-name "site-start.el" (expand-file-name "site-lisp" start-dir))) (load (concat (expand-file-name "site-lisp" start-dir) "/site-start")) (message "Loaded %s/site-start/site-lisp" start-dir)) (t (let ((dir (file-expand-wildcards (format "%s/*.el" start-dir) t))) (if (= 1 (length dir)) (progn (setq dir (replace-regexp-in-string ".el$" "" (nth 0 dir))) (load dir) (message "Loaded %s" dir))))))
  (progn (setq start-dir (expand-file-name (getenv "EPSTARTDIR"))) (if (file-exists-p (expand-file-name "elpa" (expand-file-name ".emacs.d" (getenv "EPSTARTDIR")))) (setq package-user-dir (expand-file-name "elpa" (expand-file-name ".emacs.d" (getenv "EPSTARTDIR")))) (if (file-exists-p (expand-file-name "elpa" (getenv "EPSTARTDIR"))) nil (make-directory (expand-file-name "elpa" (getenv "EPSTARTDIR")) t)) (setq package-user-dir (expand-file-name "elpa" (getenv "EPSTARTDIR")))) (message "Using startup at %s" start-dir) (cond ((file-exists-p (expand-file-name ".emacs" start-dir)) (load (expand-file-name ".emacs" start-dir)) (message "Loaded %s/.emacs" start-dir)) ((file-exists-p (expand-file-name "init.el" start-dir)) (load (concat (replace-regexp-in-string "/$" "" start-dir t t) "/init")) (message "Loaded %s/init" (replace-regexp-in-string "/$" "" start-dir t t))) ((file-exists-p (expand-file-name ".emacs.d/init.el" start-dir)) (load (expand-file-name ".emacs.d/init.el" start-dir)) (message "Loaded %s/.emacs.d/init.el" start-dir)) ((file-exists-p (expand-file-name "site-start.el" (expand-file-name "site-lisp" start-dir))) (load (concat (expand-file-name "site-lisp" start-dir) "/site-start")) (message "Loaded %s/site-start/site-lisp" start-dir)) (t (let ((dir (file-expand-wildcards (format "%s/*.el" start-dir) t))) (if (= 1 (length dir)) (progn (setq dir (replace-regexp-in-string ".el$" "" ...)) (load dir) (message "Loaded %s" dir)))))))
  (if start-dir (progn (setq start-dir (expand-file-name (getenv "EPSTARTDIR"))) (if (file-exists-p (expand-file-name "elpa" (expand-file-name ".emacs.d" (getenv "EPSTARTDIR")))) (setq package-user-dir (expand-file-name "elpa" (expand-file-name ".emacs.d" (getenv "EPSTARTDIR")))) (if (file-exists-p (expand-file-name "elpa" (getenv "EPSTARTDIR"))) nil (make-directory (expand-file-name "elpa" (getenv "EPSTARTDIR")) t)) (setq package-user-dir (expand-file-name "elpa" (getenv "EPSTARTDIR")))) (message "Using startup at %s" start-dir) (cond ((file-exists-p (expand-file-name ".emacs" start-dir)) (load (expand-file-name ".emacs" start-dir)) (message "Loaded %s/.emacs" start-dir)) ((file-exists-p (expand-file-name "init.el" start-dir)) (load (concat (replace-regexp-in-string "/$" "" start-dir t t) "/init")) (message "Loaded %s/init" (replace-regexp-in-string "/$" "" start-dir t t))) ((file-exists-p (expand-file-name ".emacs.d/init.el" start-dir)) (load (expand-file-name ".emacs.d/init.el" start-dir)) (message "Loaded %s/.emacs.d/init.el" start-dir)) ((file-exists-p (expand-file-name "site-start.el" (expand-file-name "site-lisp" start-dir))) (load (concat (expand-file-name "site-lisp" start-dir) "/site-start")) (message "Loaded %s/site-start/site-lisp" start-dir)) (t (let ((dir (file-expand-wildcards ... t))) (if (= 1 (length dir)) (progn (setq dir ...) (load dir) (message "Loaded %s" dir))))))))
  (let ((start-dir (getenv "EPSTARTDIR"))) (if start-dir (progn (setq start-dir (expand-file-name (getenv "EPSTARTDIR"))) (if (file-exists-p (expand-file-name "elpa" (expand-file-name ".emacs.d" (getenv "EPSTARTDIR")))) (setq package-user-dir (expand-file-name "elpa" (expand-file-name ".emacs.d" (getenv "EPSTARTDIR")))) (if (file-exists-p (expand-file-name "elpa" (getenv "EPSTARTDIR"))) nil (make-directory (expand-file-name "elpa" (getenv "EPSTARTDIR")) t)) (setq package-user-dir (expand-file-name "elpa" (getenv "EPSTARTDIR")))) (message "Using startup at %s" start-dir) (cond ((file-exists-p (expand-file-name ".emacs" start-dir)) (load (expand-file-name ".emacs" start-dir)) (message "Loaded %s/.emacs" start-dir)) ((file-exists-p (expand-file-name "init.el" start-dir)) (load (concat (replace-regexp-in-string "/$" "" start-dir t t) "/init")) (message "Loaded %s/init" (replace-regexp-in-string "/$" "" start-dir t t))) ((file-exists-p (expand-file-name ".emacs.d/init.el" start-dir)) (load (expand-file-name ".emacs.d/init.el" start-dir)) (message "Loaded %s/.emacs.d/init.el" start-dir)) ((file-exists-p (expand-file-name "site-start.el" (expand-file-name "site-lisp" start-dir))) (load (concat (expand-file-name "site-lisp" start-dir) "/site-start")) (message "Loaded %s/site-start/site-lisp" start-dir)) (t (let ((dir ...)) (if (= 1 ...) (progn ... ... ...))))))))
  (progn (let ((start-dir (getenv "EPSTARTDIR"))) (if start-dir (progn (setq start-dir (expand-file-name (getenv "EPSTARTDIR"))) (if (file-exists-p (expand-file-name "elpa" (expand-file-name ".emacs.d" ...))) (setq package-user-dir (expand-file-name "elpa" (expand-file-name ".emacs.d" ...))) (if (file-exists-p (expand-file-name "elpa" ...)) nil (make-directory (expand-file-name "elpa" ...) t)) (setq package-user-dir (expand-file-name "elpa" (getenv "EPSTARTDIR")))) (message "Using startup at %s" start-dir) (cond ((file-exists-p (expand-file-name ".emacs" start-dir)) (load (expand-file-name ".emacs" start-dir)) (message "Loaded %s/.emacs" start-dir)) ((file-exists-p (expand-file-name "init.el" start-dir)) (load (concat ... "/init")) (message "Loaded %s/init" (replace-regexp-in-string "/$" "" start-dir t t))) ((file-exists-p (expand-file-name ".emacs.d/init.el" start-dir)) (load (expand-file-name ".emacs.d/init.el" start-dir)) (message "Loaded %s/.emacs.d/init.el" start-dir)) ((file-exists-p (expand-file-name "site-start.el" ...)) (load (concat ... "/site-start")) (message "Loaded %s/site-start/site-lisp" start-dir)) (t (let (...) (if ... ...))))))))
  (if (and (getenv "EPSTART") (not (string= "" (getenv "EPSTART"))) (getenv "EPSTARTDIR") (file-exists-p (getenv "EPSTARTDIR"))) (progn (let ((start-dir (getenv "EPSTARTDIR"))) (if start-dir (progn (setq start-dir (expand-file-name (getenv "EPSTARTDIR"))) (if (file-exists-p (expand-file-name "elpa" ...)) (setq package-user-dir (expand-file-name "elpa" ...)) (if (file-exists-p ...) nil (make-directory ... t)) (setq package-user-dir (expand-file-name "elpa" ...))) (message "Using startup at %s" start-dir) (cond ((file-exists-p ...) (load ...) (message "Loaded %s/.emacs" start-dir)) ((file-exists-p ...) (load ...) (message "Loaded %s/init" ...)) ((file-exists-p ...) (load ...) (message "Loaded %s/.emacs.d/init.el" start-dir)) ((file-exists-p ...) (load ...) (message "Loaded %s/site-start/site-lisp" start-dir)) (t (let ... ...))))))))
  eval-buffer(#<buffer  *load*-743330> nil "c:/EmacsPortable.App/App/site-lisp/start.el" nil t)  ; Reading at buffer position 39539
  load-with-code-conversion("c:/EmacsPortable.App/App/site-lisp/start.el" "c:/EmacsPortable.App/App/site-lisp/start.el" nil nil)
  load("c:/EmacsPortable.App/App/site-lisp/start.el")
  (progn (load exported-file))
  (if (file-exists-p exported-file) (progn (load exported-file)))
  (let* ((base-name (file-name-sans-extension file)) (exported-file (concat base-name ".el"))) (if (and (file-exists-p exported-file) (> (age file) (age exported-file))) nil (message "Trying to Tangle %s" file) (condition-case err (progn (org-babel-tangle-file file exported-file "emacs-lisp") (message (format "Tangled %s to %s" file exported-file))) (error (message "Error Tangling %s; %s" file err)))) (if (file-exists-p exported-file) (progn (load exported-file))))
  (progn (if (eq vnew (quote cl--unbound)) (fmakunbound (quote age)) (fset (quote age) vnew)) (let* ((base-name (file-name-sans-extension file)) (exported-file (concat base-name ".el"))) (if (and (file-exists-p exported-file) (> (age file) (age exported-file))) nil (message "Trying to Tangle %s" file) (condition-case err (progn (org-babel-tangle-file file exported-file "emacs-lisp") (message (format "Tangled %s to %s" file exported-file))) (error (message "Error Tangling %s; %s" file err)))) (if (file-exists-p exported-file) (progn (load exported-file)))))
  (unwind-protect (progn (if (eq vnew (quote cl--unbound)) (fmakunbound (quote age)) (fset (quote age) vnew)) (let* ((base-name (file-name-sans-extension file)) (exported-file (concat base-name ".el"))) (if (and (file-exists-p exported-file) (> (age file) (age exported-file))) nil (message "Trying to Tangle %s" file) (condition-case err (progn (org-babel-tangle-file file exported-file "emacs-lisp") (message (format "Tangled %s to %s" file exported-file))) (error (message "Error Tangling %s; %s" file err)))) (if (file-exists-p exported-file) (progn (load exported-file))))) (if (eq old (quote cl--unbound)) (fmakunbound (quote age)) (fset (quote age) old)))
  (let* ((vnew (function (lambda (file) (progn (float-time (time-subtract ... ...)))))) (old (if (fboundp (quote age)) (symbol-function (quote age)) (quote cl--unbound)))) (unwind-protect (progn (if (eq vnew (quote cl--unbound)) (fmakunbound (quote age)) (fset (quote age) vnew)) (let* ((base-name (file-name-sans-extension file)) (exported-file (concat base-name ".el"))) (if (and (file-exists-p exported-file) (> (age file) (age exported-file))) nil (message "Trying to Tangle %s" file) (condition-case err (progn (org-babel-tangle-file file exported-file "emacs-lisp") (message ...)) (error (message "Error Tangling %s; %s" file err)))) (if (file-exists-p exported-file) (progn (load exported-file))))) (if (eq old (quote cl--unbound)) (fmakunbound (quote age)) (fset (quote age) old))))
  ep-load-org("c:/EmacsPortable.App/App/site-lisp/start.org")
  eval-buffer(#<buffer  *load*> nil "c:/EmacsPortable.App/App/site-lisp/site-start.el" nil t)  ; Reading at buffer position 5261
  load-with-code-conversion("c:/EmacsPortable.App/App/site-lisp/site-start.el" "c:/EmacsPortable.App/App/site-lisp/site-start.el" t t)
  load("site-start" t t)
  command-line()
  normal-top-level()
```