Another vote for SVN (Subversion) here. You can spin up an SVN server on Ubuntu in about 30 minutes. Then add the web front end in another 10. A WEALTH of clients in both GUI and non-GUI for all platforms. And it is lightweight on the client side. (Only has a single version locally) The code is very mature, and you do not have to worry about patches often, and it is just easy to use.
However, it is missing some things on your "Things that would be great" list, but not many. Not at all with some of the larg ammount of tools and addons built for SVN.
If it doesn't REALLY need to be on a Linux system, you can get Apache+SVN up and running in about a minute with VisualSVN Server. Domain integration, GUI for fine grained access controls, and it's all brain-dead simple and free.
CollabNet seems to have something similar called Subversion Edge for multiple platforms, but I haven't used it and they were late to the game.
I wouldn't recommend anyone roll their own svn+apache system. It's not worth even ten minutes of your time when those tested, out-of-os-distro stacks are available free.