Move off of <base/safe_global>

Statics inside functions are well-defined in terms of initalization guarantees with C++11. Use those instead.

Also, rework our NO_DEFAULT_CASE macro so that in debug mode compilers will still emit warnings if we don't cover all cases, and in release mode it will inject an unreachable exception which also logs to the server log it was reached.
These should be `TOpt<TRelPath>::GetUnknown()` right?