std: add an RAII unlocker to Mutex.

This automatically unlocks its lock when it goes out of scope, and
provides a safe(ish) method to call .wait.
std: add tests for the _noguard lock/signal/wait methods on Mutex.
std: Rename unstable::mutex::Mutex to StaticNativeMutex.

This better reflects its purpose and design.
std: add a NativeMutex type as a wrapper to destroy StaticNativeMutex.

This obsoletes LittleLock, and so it is removed.
sync: Add `#[must_use]` to the Mutex guard.

This helps people remember to save the return value to keep the mutex
locked as appropriate.
std::unstable::mutex: streamline & clarify documentation.
Convert some unnecessary StaticNativeMutexes to NativeMutexes.