Fix #9148 and probably #9128.

uninit_timers() needs to wait for the timer thread to exit before
deleting the timer mutex.
Small style fix
NTFS: Fixed an issue with seek and read calls

Use B_GET_PARTITION_INFO and B_GET_GEOMETRY instead of libntfs' home-brewn
device size detection. This avoids KDL in AHCI module. By the way the mentioned
problem with seek a  should be investigated separately - it looks like a bug in AHCI module.
NTFS: Fix an issue when fs_initialization re-calling.

* Reset global variables for mkntfs module.
* Add error handling for mkntfs call.
Fix iterator in hash_remove_current() to not skip elements.

When iterator->current is NULL, hash_next() assumes we've reached the
end of a bucket (linked list) and moves to the next one. Wehn the first
element of a linked list was removed in hash_remove_current()
iterator->current was set to NULL, causing the next call to hash_next()
to skip over the rest of the list of that bucket.

To fix this we now decrement iterator->bucket by one, so the next call
to hash_next() correctly arrives at the new first element of the same
bucket. Doing it this way avoids having to search backwards through the
table to find the actual previous item.

This caused modules to be skipped in module_init_post_boot_device()
when normalizing module image paths so some of the module images ended
up non-normalized. This could then cause images to be loaded a second
time for modules that were part of an actually already loaded image.
This setup is present for the PCI module with the pci/x86 submodule
and would lead to a second copy of the PCI module image to be loaded
but without being initialized, eventually leading to #8684.

The affected module images were pretty much random, as it depended on
the order in which they were loaded from the file system, in this case
the boot floppy archive of the El-Torito boot part of ISO and anyboot
images. The r1alpha4 release images unfortunately had the module files
ordered in the archive just so that the PCI module image would be
skipped, allowing #8684 to happen on many systems with MSI support.

Since the block cache uses hash_remove_current() as well in some cases,
it is possible that transactions in its list could've been skipped.
Cursory testing didn't reveal this to be a usual case, and it is
possible that in the pattern it is used there, the bug wouldn't be
triggered at all. It's still possible that it caused rare misbehaviour
though.
Fix typo.
Use a static_cast when removing menu item from BarMenuBar

... instead of a C-style cast. Also some minor style fixes.

Might fix #9151 although since I can't reproduce the bug here I have
no way of knowing.
Assume AddItem and RemoveItem could fail and handle those cases.

This is some defensive coding that assumes that the AddTeamMenu(),
RemoveTeamMenu(), AddSeperatorItem(), and RemoveSeperatorItem()
methods might fail and tries to compensate. Although it is unlikely
to be the case that these methods could fail I am trying to prevent
the bug that caused #9151 to happen.
Alter Add and Remove methods to return whether or not the add or remove succeeded.
Remove cast to BMenuItem* it is not needed
DiskUsage: remove path monitoring and "outdated view" notification

Was unreliable, too many files to monitor (would exceed too easily the 4096 files limit).
DiskUsage: update status view after zoom in or zoom out. fixes #6756.
DiskUsage: added ability to cancel an ongoing scan.  fixes #6801.

Also, progress now goes from 0.0 to 1.0 rather than from 0.00 to 100.00
(to avoid a * 100, followed by a / 100)
DiskUsage: avoid leaking the saved scan snapshot
ARM/libroot: import files from glibc-ports-2.9

There is no ARM port for the glibc version we're using mostly, so I'm picking
up files from more recent glibc and will probably need to hack around in them,
as glibc seem to have cleaned up their arch support a lot these days.
generic/libroot: Add missing generic functions

This adds a few generic implementations of basic arithmetic functions. These
would normally be implemented in assembly, but add them for easy bringup of
new architectures.

This enables new platforms to start with a minimal set of changes to libroot.
ARM/libroot: copy some headers from x86

These are pretty generic 32bit target files, so just copy them over.
Once we get userland properly starting, we can review these to see
if they need any changes.
ARM/libroot: more stubs for floating point related things

Will sort this out properly when userland is coming up. Need to get
a basic libroot version working first, so I can build a proper HaikuImage
to boot from ;)
ARM/libroot: Add ARM specific Jamfile

This gets us to compiling/linking libroot almost completely, except
for some Haiku/ARM specific hooks that need to be done....

Almost there!
Sync userguide from i18n.haiku-os.org.