Inject the auntenticated user

`Map` the authenticated username, so it can be used in downstream handlers, like this:

```go
m.Get("/", func(user auth.User) string {
    return "Hi, " + user
})
```

README and tests have been updated too.

Based on #6 and #7. Let me know if I should rebase.