Add preliminary support for dictionary builds

Import BuildDictionary.cmake from cetbuildtools to supply basic
upstream dictionary code generation methods (wrapper around
genreflex). This module is primarily used by art and clients of
art so art is the best place for it.

Remove references to any UPS functionality in BuildDictionary
and ArtDictionary as presence of both modules no longer requires this.

Retain call hierarchy of modules and front end functions, with the
following behavioural changes:

- Require client to install generated dictionary libraries to give
  client freedom to adapt installation location to their use case.
  This also provides more consistency with CMake's add/install
  system.
- Use target names rather than CMake variables when linking to Art
  targets. This allows complete transparency between building
  dictionaries inside Art and by clients without having to work
  out the difference.
- Use target interface properties to derive required include directories
  and compile definitions to pass down to genreflex. This makes the
  specification of target interface requirements easy to use and
  consistent through art.

Do not run CheckClassVersion as yet due to encountered errors with
underlying ROOT reliance on LD_LIBRARY_PATH.

- TODO: add option to checkClassVersion program to supply a dynamic
  lookup path.

Update art source tree to add back calls to art_add_dictionary where
required. Install resultant dictionary libs in same location as
main Art libraries, exporting them to the ArtLibraries set.

Include ArtDictionaries when artConfig.cmake is loaded by CMake
so that clients of Art can immediately use the code generation
functions (ala FindQt4, Qt5).