with the exception of something wiki ish, all the above can be made between vbulletin & using vbadvanced (free). I use them on my site and have all the functionality you mention. If you're like me, it took a few tries to figure out what I was doing, but the newest incarnation of vbadvanced is a real piece of cake to suss out.