Add {Required,Optional}RequestBody readers.

BTW, can't we just do `object RequiredBody extends RequestReader ... ` to use it like:

```scala
val r = for {
  body <- RequiredBody
}
```

instead of:

```scala
val r = for {
  body <- RequiredBody()
}
```

and the same for `RequiredStringBody`, etc.