beecrypt: Add PACKAGECONFIG for cplusplus

Add a PACKGECONFIG to control the building of the beecrypt C++
bindings. The only user of beecrypt in OE-Core is rpm and this doesn't
need the C++ bindings so default the option to be off. This means
we can lose the icu dependency by default which is a significant
performance win.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
harfbuzz: Add PACKAGECONFIG for icu

harfbuzz can be built without icu. We don't need harfbuzz-icu for any
default OE-Core configuration so default to icu being disabled for
performance improvements.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
classes/image: write image manifest

Write a list of installed packages to a .manifest file next to the
image, so we can find out what went into the image after it has been
constructed without necessarily having to have buildhistory enabled
(although that will provide more detail.) We can make use of this for
example in the testimage class associated code that checks for installed
packages for determining whether or not to run specific tests.

Note: this replaces the previous ipk-specific manifest code with
something that works for ipk, rpm and deb, and instead of a pruned
status file, packages are listed one per line, in the following format:

<packagename> <packagearch> <version>

Tests for all three backends have shown that the performance impact of
this change is negligible (about 1.5s max).

Implements [YOCTO #5410]

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>