Controllers Providers

Removi aquela bagunça que estava no app.php. Para isso eu transformei os controllers em ControllersProviders e dei ao metodo "mount" deles a responsabilidade de mapear suas rotas, assim fica mais fácil saber onde configurar o que.

Dei uma turbinada no BaseController e adicionei 4 métodos estáticos para controlar quem pode acessar o que (isso era feito atachando-se callbacks em todas as rotas manualmente)

1. getPublicActions()
retorna um array com as actions públicas do controller

2. isPublic($action)
Boolean. Verifica se uma determinada action é pública naquele controller

3. getGuestActions()
similar ao getPublicActions, porém, controla se a action pode ser acessada por um usuário que não seja um administrador

4. isGuest($action)
Mesma coisa do que o isPublic, porém para usuários guest.

As demais rotas obrigam o usuário a ser um administrador.