#352 Split basis_project_impl into three parts: basis_project_begin, add_subdirectories, basis_project_end.
#352 Add basis_add_subdirectory and basis_add_module.
#352 Do not check for PROJECT_IS_MODULE but visit all modules listed in PROJECT_MODULES_ENABLED.

The PROJECT_MODULES_ENABLED list is supposed to be empty for a project which itself is a module. If not, it is a mistake by the module developer which should lead to an error in basis_add_module.
#352 Update default root CMakeLists.txt template to use basis_project_begin, basis_add_module, basis_add_subdirectory, and basis_project_end instead of basis_project_impl.
#352 Call basis_add_module only if PROJECT_IS_MODULE.

The PROJECT_MODULES, PROJECT_MODULES_ENABLED, and PROJECT_MODULES_DISABLED variables are in fact not reset for each module but can be read by all modules of the top-level project. This is needed to identify dependencies of a module which are in fact modules of the same top-level project. See basis_find_package.
#352 Make basis/1.1 the new default template.
#352 Finalize custom build targets and utilities as part of BASIS_BUILD_ONLY.

This change has been made before in a separate branch which I must have forgotten to merge into develop before creating this feature branch.
Merge remote-tracking branch 'github/develop' into feature/#352-split-basis_project_impl
#352 Update API documentation to refer to basis_project_begin/end instead of basis_project_impl.
#352 Update project modularization documentation to refer to basis_project_begin instead of basis_project_impl.
Merge remote-tracking branch 'github/feature/#352-split-basis_project_impl' into develop