Ensure CTK_ENABLE_Python_Wrapping remain set when CTK_BUILD_ALL is ON

When CTK was configured with CTK_BUILD_ALL or CTK_BUILD_ALL_LIBRARIES, all
expected options were properly set after the first configuration. It's
after configuring the project a second time (without changing any options)
that problems appeared.

Example
=======

Before this commit, the option CTK_ENABLE_Python_Wrapping was
disabled after configuring a second time.

$ git clone git://github.com/commontk/CTK
$ mkdir CTK-build
$ cd CTK-build
$ cmake -DCTK_BUILD_ALL_LIBRARIES:BOOL=ON -DCTK_ENABLE_Python_Wrapping:BOOL=ON ../CTK

[...]

$ cmake .
Full support for [CTK_ENABLE_Python_Wrapping] disabled

Details
=======

The highlevel option (CTK_ENABLE_*) were set before the regular toolkit
options (CTK_LIB_*, CTK_APP_*, CTK_PLUGIN_*). If configured again and if associated expression
evaluated to false, the high-level option was forced to OFF.

For example, the option CTK_ENABLE_Python_Wrapping was depending on
CTK_LIB_Scripting/Python/Core. On following configuration, if CTK_LIB_Scripting/Python/Core
was false, CTK_ENABLE_Python_Wrapping was forced to OFF. This behavior was observed.

Since setting CTK_BUILD_ALL or CTK_BUILD_ALL_* options are NOT forcing  any variables in the
cache [1], when option like CTK_LIB_Scripting/Python/Core were specified, they were set to ON in
the current scope. On the following configuration, the code allowing to
specify the CTK_ENABLE_Python_Wrapping was forcing the option CTK_ENABLE_Python_Wrapping to be OFF
since CTK_LIB_Scripting/Python/Core was also OFF.

By moving the definition of the high level variables after the definition of the CTK_LIB_*,
CTK_APP_* and CTK_PLUGIN_* variables, we ensure that these same variables will be set in the current
scope when on of the CTK_BUILD_ALL_* option are enabled, doing so will then ensure that the highlevel
option are not forced to false when not required.

Finally, let's also not that high-level option like CTK_ENABLE_Widgets were not impacted by that issue
because they were dependent on option being already systematically forced in the cache. Preventing
the option from being forced into the cache in the "ctk_option" macro ensure that no variables is set
in the cache when either high level or build all options are set.

[1] The existing cache variable are "shadowed", it allows to keep the state
of the CTK_LIB_*, CTK_APP_*, CTK_PLUGIN_* variables untouched while trying to build the complete tree.

See #258
Print message if CTK_{APP, LIB, PLUGIN} options set to ON because of BUILD_ALL options

See #258
Fix dependency of Scripting/Python/{Core, Widgets} options

Only Scripting/Python/Core is required to successfully build the wrapping.

Additionally, the widget library will be implicitly enabled due to the
library dependencies set in target_libraries.cmake

See #258
Merge branch 'REBASE-258-fix-highlevel-cmake-options'

* REBASE-258-fix-highlevel-cmake-options:
  Fix dependency of Scripting/Python/{Core, Widgets} options
  Print message if CTK_{APP, LIB, PLUGIN} options set to ON because of BUILD_ALL options
  Ensure CTK_ENABLE_Python_Wrapping remain set when CTK_BUILD_ALL is ON