update API using lessons learned from migrating actual hashmap user code

Adds `OccupiedEntry.into_mut` and makes `VacantEntry.set` yield a mutable reference to the inserted value. This makes Entries sufficient to actually implement the old methods (ignoring access to keys, which doesn't seem to actually be used anywhere). It also makes several real-world implementations much better to port.

Also refactors the text to reflect these changes.