Thanks for all the help! I figured out that the problem wasn't with the installation, but that Emacs was calling org (i.e. the built-in version) before org-plus-contrib was being loaded. At least I think that's what the problem was.
What I know for sure is that placing the line (add-to-list 'load-path ".emacs.d/elpa/org-plus-contrib-20150810/") at the very beginning of my init file made that error message go away, and now Emacs and org-plus-contrib appear to launch successfully.
However, I'm still getting errors when I do org-refile. Doing org-refile triggers this error:
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
org-refile-get-targets(nil (#("ferry" 0 5 (fontified t line-prefix nil wrap-prefix #(" " 0 2 (face org-indent)) face org-level-1))))
org-refile-get-location("Refile subtree \"ferry\" to" nil confirm nil)
#<subr call-interactively>(org-refile nil nil)
ad-Advice-call-interactively(#<subr call-interactively> org-refile)
apply(ad-Advice-call-interactively #<subr call-interactively> org-refile)
#<subr call-interactively>(org-self-insert-command nil nil)
ad-Advice-call-interactively(#<subr call-interactively> org-self-insert-command nil nil)
apply(ad-Advice-call-interactively #<subr call-interactively> (org-self-insert-command nil nil))
call-interactively(org-self-insert-command nil nil)
I don't think this is an issue with installation, because it still happens after I do org-reload or C-u org-reload. Does anyone know how I can debug this?