Long ago, the stable name table and stable pointer tables were one.
Now, they are separate, and have significantly different
implementations. I believe the time has come to finish the split
that began in Trac #7674.
- Divide rts/Stable into rts/StableName and rts/StablePtr.
- Give each table its own mutex.
- Add FFI functions hs_lock_stable_ptr_table and hs_unlock_stable_ptr_table and document them. These are intended to replace the previously undocumented hs_lock_stable_tables and hs_lock_stable_tables, which are now documented as deprecated synonyms.
- Make eqStableName# use pointer equality instead of unnecessarily comparing stable name table indices.