I have been very happy with my Simple Machines Forum. http://www.simplemachines.org/ Not sure it meets 100% of your requirements, but certainly most of them. Good luck