Unauthorized page + misc small updates

- Unauthorized page for redirection logic (instead of doing it in the login page)
- Remove revealInParent
- Use diamonds
The interface is accessible from that class, so it doesn't matter if it public. That is also why the Gin bindings are defined in the same package (the interface is in fact package private rather then private)