Refactor fhash

Complete the fhash refactor tasks:
1. New APIs (with API descriptions in the header files)
2. UT refactor
3. Add benchmarking tool