Something I played around with before landing on Sharepoint for our needs internally (you get a free foundation licence with a Windows SBS 2010 box) was Alfresco.
Looked pretty powerful, configurable and probably meets most of your needs outlined in OP. There was a free, open-source community edition which I downloaded and setup on a real lowspec linux server for testing.
From memory it's PHP and Java-based, accessed through a browser and also allows OS shell integration. Looks as though they now also have a native iOS application (and are recruiting for Android developers currently) .