There are some very good freebees available in the market. One or two may even give you all the features you want, but it's highly unlikely you'll get all those things from a free app. I suggest you search Blackberry App World and Crackberry App Store. I have several freebees installed on my 9650 that suit my purposes: Add Contact App, from Ajani, and Adaffix GmbH. You may want to check them out. But you may have to fork over a few bucks for more features. Good luck.
As lak stated, Caller ID comes from your service provider. Until you have someones info in your contacts, an incoming call will only display the phone number. If you are asking for a directory type app that will display info for anyone that may call I do not believe there is one.(Although not a bad idea)
Posted from my CrackBerry at wapforums.crackberry.com