[go_router] Secured empty matches in canPop (#8557)
If current configuration matches is empty, canPop throws exceptions instead of quit properly
```
StateError: Bad state: No element
App 0x1086b3e80 List.last (growable_array.dart:349)
App 0x108996274 GoRouterDelegate.canPop (delegate.dart:84)
App 0x1089961bc GoRouter.canPop (router.dart:330)
App 0x10899615c BuildContextExtension|get#_shouldPop (build_context_extensions.dart:40)
```
- if there are no elements, poping page throws an error
[go_router] Fix return type of current state getter to be non-nullable (#8173)
The state getter returns a GoRouterState?, but I don't think it needs to be nullable since currentConfiguration.last.buildState() never returns null.
I'm not sure if it is nullable on purpose for some changes planned in the Future. If there is a reason, it might be better to add a comment about it. Otherwise, it is just inconvenient that a null check is necessary.