Cleanup: Fix missing evaluation of HAIKU_NO_LIBSUPC++.

* There's no user of HAIKU_NO_LIBSUPC++ anywhere, so the typo didn't
  have any effect.
Improve IsPackageAvailable()

* When adjusting the package name for the secondary architecture,
  it is unclear where exactly in the package name the architecture
  specifier is. To remedy, we try all possible positions until
  we find the package (or there are no other possibilities).
Add build features gcc_syslibs and gcc_syslibs_devel.

* gcc_syslibs contains the shared libraries that are being built
  as part of gcc, i.e. libgcc_s.so, libsupc++.so and libstdc++.so
* gcc_syslibs_devel contains the static versions of the respective
  libraries plus additionally kernel versions of libgcc.a and
  libsupc++.a (which do not provide support for pthreads or TLS
  and thus do not have any external dependencies). Additionally,
  this build feature contains the c++ and gcc headers from the
  non-legacy compiler.
Add SystemLibraryRules.

* This file contains jam rules for getting the different versions
  of libgcc, libsupc++ and libstdc++ used throughout Haiku's
  build system.
* Additionally, there are rules for accessing the c++ headers
  and the gcc headers.
* These rules are included by Jamrules, but not yet used anywhere.
Define two pseudo targets for the target and build platform.

* The main build rules now cause their targets to depend on the
  platform such that global per-platform intializations can be
  set up by making the platform pseudo target depend on the
  target returned by the initialization rule.
Tracker: unchecked return value, CID 602465

Check that refs is not NULL and that refs->FindData() succeeds.

Also, explicit NULL check
Tracker: Fix 3 copies, CID 609040-CID 609042

strcpy() => strlcpy()
Tracker: Fix dereference after NULL, CID 601541

_TrackerLaunchDocuments() dereferences refs to copy it, so, we need
check that it isn't NULL first.

Also a few style fixes.
* Name params consistent with TTracker class methods
  ref, message => appRef, refs
* Use NULL instead of 0 for NULL pointer.
Tracker: check if widget == NULL, CID 600509

Add a few helpful comments too.
Tracker: fix memory leak, CID 600996

We now only create the BString if we're going to put it in the list.
Tracker: fix NULL dereference
Tracker: fix unchecked return value, CID 602466
Tracker: fix use after free, CID 610577

This seems to happen when BList got converted to a BObjectList.
The latter frees items when removing them by default while the former
does not.
Tracker: fix uninitialized pointer, CID 991718

fTrashContextMenu was never initialized in the constructor
(looks like it just got overlooked since all other pointers were.)
Tracker: Check if Submenu() is NULL. CID 601585
Tracker: tiny style fix
Tracker: fix unchecked return value. CID 602487
Tracker: tiny style fix, 80 char limit
Tracker: fix unchecked return value. CID 602488
Tracker: fix uninitialized members, CID 991721