freebsd_network(): call uninit_hard_clock() on uninit

Not uninstalling the timer hook could lead to a crash after unloading/
reloading the driver.
Guard the __sync_* atomic helper with __ARM__

I didn't notice I was adding to a generic file.
Add libcurl build feature.
libpackage: Use libcurl directly for downloads.

- Initial step towards allowing listening for download progress.
Add libcurl dependency to haiku system package.
libpackage: Add global init/terminate routines.

- Currently only used to call libcurl's global initialization and
  cleanup routines.
BDecisionProvider: Make YesNoDecisionNeeded() non-abstract.

- A subset of jobs that require a BContext don't in fact make use of the
decision provider. As such, make the default implementation usable for
those cases so one doesn't need to always create a dummy derived class.
BPackageManager: Eliminate RequestHandler.

- Pull functionality back into package manager itself since the extra
  indirection doesn't really buy us anything in this case, as neither
  request that it handles requires a decision provider.
- Adjust pkgman and HaikuDepot accordingly.
Package Kit: Implement progress notifications.

- BJobStateListener: Add progress state and corresponding hook.
- FetchFileJob: Notify job progress hook on libcurl notifications.
- UserInteractionHandler: Add hooks for download progress and checksum
  validation progress.
- PackageManager: inherit from JobStateListener and watch for job
  notifications for internally generated jobs. Forward to corresponding
  UserInteractionHandler hooks as needed.
- Adapt pkgman, HaikuDepot and package_daemon to above changes.
  Neither HaikuDepot nor package_daemon's progress hooks are wired up to
  do anything yet though.
libpackage: Add missing build dependency.
HaikuDepot: Add download progress package state.

- Add accessors for storing/retrieving current download progress.
- Adjust PackageListView to be able to create a progress state from
  the download percentage.
HaikuDepot: Implement download progress handling.

- PackageManager: Add simple progress listener class for other parts
  of depot to use, which in turn is notified when the user interaction
  handler's download progress hook is called.

- InstallAction: Implement progress listener interface and add self
  as listener when initiating a package installation.

This gets basic download progress reporting working in Depot, but isn't
yet complete, as, with the current implementation it doesn't properly handle
any dependent packages that might get downloaded, since InstallAction currently
only knows about the package info that it's directly responsible for. Needs a
bit more work to handle that correctly.
libpackage_build: Fix build on gcc2 haiku.

- gcc2 lacks the -iquote option, and side effects of some of the other flags
  we use with it during the build cause some of libcurl's includes to fail.
  This temporarily works around the problem until gcc2 can be suitably fixed.
libpackage_build: Fix build on FreeBSD.

FreeBSD's gcc doesn't include /usr/local/{include,lib} in its default
search paths, but libcurl gets installed there.
ARM: work around too many libgcc objects when linking libroot

jam fails in execve() trying to run the command due to
a too large arguments list because of the many objects in libgcc.

We split them into two intermediate objects,
then we link them to libroot.
Minor style cleanup.
libshared: Factored out driver settings class from net_server.

* The new class is called DriverSettingsMessageAdapter which can translate
  between a driver_settings file, and a BMessage.
* The net_server Settings class is now just using this class.
Add definitions for PPC repositories and package infos
package_daemon: Cleanups.

- Remove no longer needed context object, as well as dummy
  BDecisionProvider implementation, as the base class now does the same
  directly by default.
Clean up FreeBSD build support as suggested by Ingo.