Add --setup=filename option to flx_build_prep.

This option causes the specified file to be loaded
and each line parsed as a command of the form

  src > dst

where src is a regular expression and dst is a replacement
string. A replacement text ${i} where i is n integer literal
is replaced by subgroup i.

Files are copied, with autodirectory construction and clobber
checking on a per line basis by flx_cp code from source
directory given in --source-dir=source option to the
subdirectory --target-bin=target of directory --target-dir=dir.

For example

  flx_build_prep --source-dir=build/release --target-dir=build/release \
    --target-bin=newtarget --setup=filename.whatever

where filename.whatever says

  share/src/config/unix/(.*\.fpc) > config/${1}

will copy (recursively) all the config files from unix in the
shared repository image to the config of the new target.

To be copied, a file SHOULD be first put in the repository,
then flx_build_prep run with the --copy-repo option, because
files outside an install cannot be copied. Whatever you copy
must be shared (open source principle).

This option should allow people to commit preconfigured
setups for various platforms. The operation is not limited
to just fpc config files: it can be used to copy C++ headers
and Felix files as well.

This option is not supposed to be used for custom addons.
For example if you want gmp support, you should not use
this mechanism to try to automatically add it to a build
because the config data required is outside the core build.

Support for custom addons will be provided later
through a different mechanism (independent of the core
system).
Merge branch 'master' into flx_world