+ routing: add `optionalAuthenticate` directive

- `optionalAuthenticate` directive provides `Some(userContext)` on
success, `None` if no credentials are provided, otherwise rejects
I don't quite understand, how this tests involved a "different scheme". What are you really testing here?