Apply Modern CMake best practices and use target_include_directories
rather than include_directories for defining where to find header files.
Where possible, scope was reduced to PRIVATE, indicating that the headers
are required only for compilation, not when linking against the target.
Additionally, the generated headers that are required for the decaf libs
to work have been added to their build interface. This means that other
projects that use CMake to build this project will correctly link against
the decaf and decaf-static targets.