Remove core-recipe bbappends

Some of these packages may break again without these, but the issues
encountered in these should be treated as package bugs and fixed in
oe-core, and fixing them here can introduce clashes with other patches
or version creep. Same for the fsl-arm recipe changes.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Separate out external-sourcery-toolchain components

This patch breaks up the external-sourcery-toolchain recipe into
parts, making the swap between prebuilt and recompiled eglibc easier
to see, and providing for the creation of an SDK (using a cross-canadian
recipe). It also adds optional support for mklibs and prelink, which
may be provided by some toolchains but not others.

The reason the base package is renamed is in part that there's also
an "external-sourcery-toolchain" recipe in oe-core, and in our build
system, this layer may be "under" oe-core, so we were picking up the
wrong one. The naming is negotiable.

Furthermore, fix multilib support: Instead of changing TARGET_PREFIX
to CSL_TARGET_SYS, we make the symlinks point from HOST_PREFIX-util
to CSL_TARGET_SYS-util, and do this for any multilibs. This
way, all the many things using ${HOST_PREFIX} to distinguish multilibs
will work, e.g.:
     PREFERRED_PROVIDER_virtual/${HOST_PREFIX}-gcc-initial
This used to be TARGET_PREFIX, and in fact, HOST_PREFIX is the same as
TARGET_PREFIX by default, but the actual variable assignments used
to find gcc, objcopy, and such all use HOST_PREFIX, so using that name
avoids one possible failure mode.

Similarly, checks against PREFERRED_PROVIDER have to be against BPN,
not PN, because PN changes to lib32-packagename.

Since some toolchains have mklibs or prelink, and others don't, those
are installed conditionally based on PREFERRED_PROVIDER_prelink-native and
PREFERRED_PROVIDER_mklibs-native. Note that they go in the -cross recipe;
this is because, perhaps surprisingly, the Mentor toolchains contain a
slightly different prelink-rtld for each architecture.

The extraction of multilibs is moved into a new recipe with a new task,
do_setup_shared. This task also now handles the creation of symlinks, because
the names of the symlinks can't be correctly determined at initial
configure time. The sysroot computations now use $EXTERNAL_TOOLCHAIN instead
of relying on $PATH.

The symlinking functionality is also updated a bit, to have optional
symlinks (used for mklibs/prelink) and symlinks which will cause the
build to fail if they can't be made for a reason other than already
existing. It now searches three directories, and it's easier to modify
the logic.

The prebuilt glibc is now a separate recipe from external-csl-toolchain,
and the two tcmode files arrange that either the prebuilt or from-source
eglibc recipe will be blacklisted, so attempts to build the world don't
fail.

A new blacklist conf file is added which blacklists recipes (such
as gcc-cross) which are expected to clash with toolchain components.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Further link shuffling

Break the linking of binaries out into a separate command that
can be invoked using SSTATEPOSTINSTFUNCS or SSTATEPREINSTFUNCS for
cases where you're installing from sstate, or possibly bypassing
the need for the target's toolchain components entirely (such as a
kernel-only build).

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>