ExternalProject: Add independent step targets

When adding step targets using ExternalProject_Add_StepTargets, the
STEP_TARGETS argument or the EP_STEP_TARGETS property, ExternalProject
sets all the dependencies for the main project to that target.  Due to
this, the update target cannot be used without downloading and building
all the dependencies.

In order to be able to add step targets that do not depend on other
external projects, this patch adds:

* An optional "NO_DEPENDS" argument to the
  ExternalProject_Add_StepTargets function. If this argument is set,
  then no dependencies are set for the target (file dependencies will
  still be set).

* A new argument INDEPENDENT_STEP_TARGETS to the ExternalProject_Add
  function and a new directory property EP_INDEPENDENT_STEP_TARGETS that
  behave like STEP_TARGETS and EP_STEP_TARGETS, but cause the
  ExternalProject_Add_StepTargets to be called with the NO_DEPENDS
  argument.
ExternalProject: Fix tests with ninja

Update step for external projects depending on "SetupLocal*Repository"
is not supposed to be independent, otherwise with parallel builds the
update step might be executed before the repository is ready.
Merge topic 'ExternalProject-independent-step-targets' into next

fc74818 ExternalProject: Fix tests with ninja
e324c58 ExternalProject: Add independent step targets