HAIKU_DEFINES: Add __HAIKU_PRIMARY_PACKAGING_ARCH

* It is set to the primary architecture we're building for.
* Remove __HAIKU__. The macro is already defined by the compiler.
runtime loader: Export get_executable_architecture() function

Given a path of an ELF file, it tries to determine its architecture.
Add get_*architecture() API, extend find_path*() API

* Add get_architecture(), get_primary_architecture(),
  get_secondary_architectures(), guess_architecture_for_path() to get
  the caller's architecture, the primary architecture, all secondary
  architectures, or the architecture associated with a specified path
  respectively.
* Rename the find_path*() functions to find_path*_etc() and add an
  optional architecture parameter. Add simplified find_path*()
  functions.
* BPathFinder: Add FindPath[s]() versions with an architecture
  parameter.
findpaths: Add an -a <architecture> option
Add get_architectures() and C++ versions

* get_architectures() returns the primary and the secondary
  architectures in one array. That turned out to be convenient.
* Add C++ versions for get[_secondary]_architectures(), returning a
  BStringList.
Add setarch and getarch commands