Refactor RequirePermissions to be repeatable

A route can now be annotated using the @RequirePermission
annotation, to enforce permissions constraints.  This annotation
can be repeated.