autotools: Use make clean for builds not supporting B != S

If the build doesn't support B != S, we can try running "make clean" instead
to try and clean up previous objects if the hash for the task has changed.

This tries to ensure that when variables like ${baselib} change, the changes are
correctly accounted for.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
base.bbclass: Enable using 'make clean' for rebuilds

When something rebuilds say due to ${baselib} changing or some
other key variable, software is often not rebuilt due to the
fact that make detects no dependency change.

By running "make clean" when these changes occur, we can at least try
and ensure the correct rebuilds happen. We use the same checksum check as
autotools to decide if things have changed or not.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cmake: Try and improve cleaning of builds when B==S

Currently if B==S for a cmake recipe, the build will not reconfigure. This patch adds
code to remove the generated cmake files, meaning cmake will then be forced to regenerate
them. This forces cmake to see configuration changes it may not otherwise see.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wpa_supplicant: Improve rebuild handling

Due to the split level nature of the wpa_suppliant sources, the standard
clean methods don't work. This change ensures it picks up on changes to
configuration.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gnu-config: Deal with "make clean" breakage

gnu-config can't cope with a "make clean" so disable that
newly enabled functionality.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hicolor-icon-theme: Deal with "make clean" breakage

hicolor-icon-theme can't cope with a "make clean" so disable that
newly enabled functionality.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>