Environment is now global and not per-router

This avoids having multple listeners for "popstate" and "hashchange" events. We
now have centralized routers registry which keeps routers' state in sync.