Ninja: add pool support

With ninja it is possible to control the number of concurrent jobs.

Example:

set_property(GLOBAL PROPERTY POOLS "link=1;compile=1;custom=1")

set(b ${CMAKE_BINARY_DIR})
FILE(WRITE ${b}/foo.cpp "")
FILE(WRITE ${b}/foo2.cpp "")

set_source_files_properties(${b}/foo.cpp PROPERTIES COMPILE_POOL compile)
add_library(lib ${b}/foo.cpp)
set_property(TARGET lib PROPERTY LINK_POOL link)

add_library(lib2 ${b}/foo.cpp ${b}/foo2.cpp)
set_property(TARGET lib2 PROPERTY COMPILE_POOL compile)

add_custom_command(
  OUTPUT ${b}/foo3.cpp
  COMMAND ${CMAKE_COMMAND} -E copy ${b}/foo.cpp ${b}/foo3.cpp
  POOL custom)

add_custom_command(
  OUTPUT ${b}/foo4.cpp
  COMMAND ${CMAKE_COMMAND} -E copy ${b}/foo.cpp ${b}/foo4.cpp
  POOL custom)

add_library(lib3 ${b}/foo3.cpp ${b}/foo4.cpp)
Merge topic 'ninja-experimental-pool-support' into next

0b0ff57 Ninja: add pool support