Fix inconsistent usage of PROJECT_*_DIR variables

The PROJECT_SOURCE_DIR and PROJECT_BINARY_DIR variables refer to the
project's root source and binary directories and their names usually
gives more clue to the reader than CMAKE_CURRENT_SOURCE_DIR or
CMAKE_CURRENT_BINARY_DIR (which denote current source and binary dirs).

On the other hand, macros have to use the CMAKE_CURRENT_* variants as they
may be invoked from other (non-root) directories, so they remain unchanged.