An editor that gets overlooked a lot is MacVim. It's based on the venerable vim editor, from *nix, and can do everything you asked via plugins.
I show it supports 176-ish different languages, including all the ones you mentioned.
I regularly do lookups of existing methods, variables, random text phrases via a CNTRL_N or CNTRL_P mapping which searches all the open files and pops up a list of the hits.
Vim calls its projects "sessions", which stores all the files, window settings, macros, etc., for later reloading. From vim's "direct" mode,
:mksession path/to/sessionfile will create it. Sourcing it later from the command-line is simple:
vim -S path/to/sessionfile.
There's a great plugin called VCS, that handles my SVN stuff:
...CVS, SVN, SVK, git, bzr, and hg within VIM, including committing changes and performing diffs...
Upload to server functionality is handled by the netrw plugin.
vim does have a steep learning curve, the
vimtutor, which comes with the app, can help jump-start you. Also, there are active users here and on SO's sister sites, plus on the vim IRC node on freenode.net.
Probably the most awesome thing about vim, is its available in an interfaced version on Mac OS as MacVim, on Linux using gvim, on Windows, and from the command-line of any of those OSes. vim on any of them will use the same commands, same plugins, same themes, etc., within the limitations of those environments. I bounce back and forth from Mac to Linux all day long and have at least one vim window open somewhere.
And, lest anyone think I'm not familiar with the Mac-only alternatives, I own all my copies of Coda, BBEdit and TextMate, and use them. I go way back with BBEdit, and actually used to occasionally demo it at MacWorld. It's great, but I use vim with the same settings everywhere, and none of the other editors can do that. So, if you need that cross-platform compatibility, look into it.