Moved implementation from header to source file

Compilation units:
- filesystem.cpp
Added methods to convert DescriptorsType from/to std::string
Removed globbing in CMakeLists

It is better to explicitely name which file must be compiled. By doing so
it is also possible to add new code without breaking the build.
Moved functions from demo/utils to utils/filesystem
Added preprocessed header for directories
Added query by id to KDTree and Index
Refactoring callbacks by use inheritance instead of templates
Added proxy class ImageSearch

The ImageSearch class provides a single easy-to-use interface to the
image search library.

Currently supports loading index/vocabulary from file and querying.
Cleanup test fixtures and directories header
Passing data directory path to ImageSearch
Removed function categoryDir from demo/utils
Moved functions from demo/utils to utils/filesystem
Added function requiresVocabulary() for DescriptorsType
Added class Builder
Removed deprecated method
Added missing else branch
Removing deprecated warning
Fix SIGILL

Actually only using DescriptorsType& causes error.
Later, when optimizing the code we should remove redundant/unused
attributes and use references/pointers whenever possible.
Added documentation to ImageSearch class
Splitted test_imsearch test into load and build tests

test_imsearch_load just loads data from files, test_imsearch_build
actually recompute descriptors and reindex images. For this reason the
latter is disabled in CMakeLists.txt but can be manually executed.
Anyway, these are actually integration tests and should be executed at
a later stage, not for during unit testing.