Supplement an extra parameter to for_each_file_name
Introduce the hash table APIs.

The hash table will play an important role in the new Device Subsystem,
providing a quick search method from a device contract's href to its
descriptor.
Merge pull request #38 from Qingtao-Cao/devel

Relevant code has been tested on my local machine and merge it so that I can further send another pull request to fix a race condition in the oBIX server that is triggered by the bms adaptor