Before choosing a software, you should ask yourself some questions. How big is your team? Who will manage the software? Who will host? What is your budget?.
If you are a small-mid size firm, I usually more features andin the long run become more of a hassle. As theThe best thing is to keep it simple and straightforward (KISS). For that I recommend [Project Pier][1], it is open source, so it is free, easy to install, and easy to use. Unfortunately it does not have all the features you require, but you could easily take it to a programmer and modify the software to your firm needs. [1]: http://www.projectpier.org
Google is your best friend when searching for tools and software.