As mentioned a few times in the past, the previous handling using a
`optional<pair<bool, std::shared_ptr<>>>` was confusing and nobody ever
remembered what the optional being unset meant or what the bool stood
for.
Add an `InitMapPtr` struct that wraps a `uintptr_t` that either holds a
pointer to a valid `InitMap` instance _or_ one of two special values.
The struct has meaningful accessors for the various special cases that
were confusing before.