- CurrentUser pasa de enum a struct con `id` opcional (anónimo = None) y
preferencias de idioma, zona horaria y tema validadas en `with_*()`.
- `RequestLocale` tiene en cuenta el idioma preferido del usuario, y
Context usa su tema si lo tiene (`default_theme()` en otro caso).
- Nuevos componentes `form::SelectLanguage`, `form::SelectTheme` y
`form::SelectTimezone`, con `Timezone::supported_by_region()` para
listar y validar las zonas IANA ofrecidas.
- Amplia la estructura "Page" para trabajar el renderizado con regiones
de componentes para componer la página.
- Añade acciones "BeforeRenderBody" y "AfterRenderBody" para alterar el
contenido de la página antes y después del renderizado.
- Actualiza "Context" para admitir parámetros dinámicos y mejorar la
gestión de temas.
- Implementa el manejo de errores HTTP respondiendo páginas.
- Mejora la documentación y reorganiza el código en varios módulos.
- Añade acciones BeforeRender y AfterRender para ejecutar código
personalizado antes y después de renderizar un componente.
- Introduce la acción PrepareRender para personalizar totalmente el
renderizado de un componente.
- Se actualizan las definiciones de acciones para utilizar el nuevo
"trait" ActionDispatcher.
- Se crea un nuevo trait ComponentTrait para definir componentes
renderizables.
- Se implementan las estructuras Children y Child para gestionar
componentes hijos dentro de un componente padre.
- Se añade OptionComponent para encapsular de forma segura componentes
opcionales y poder usarlos en otros componentes.