restructuring includes and namespaces
splitting tests according to their dependencies
making dependencies optional

 * only add PamUserDB when pam is available
 * only add File*DB when libconfig is available
 * only add Sha256Filter when crypto++ is available