initial for path_service
add fundamental structures and data
ENSURE facility modifid

The ENSURE macro will internally use assert() in DEBUG mode, in order to give a chance for programmer to attach a debugger.
However, _ENSURE_DISABLED macro has no effect on disabling assert() invocation
working on PathService::Get
put PathKey in basic_types.h. almost done with PathService::Get
fix potential bug in MT environment
accomplished PathService

+ RegisterProvider
+ DisableCache
+ EnableCache
but there still is something need to do (see TODO:// for more details). I would finish them when I am done with base_path_provider
start working on BasePathProvider

done with FILE_EXE
add in BasePathProvider
work on BasePathProvider

added a bunch of paths