Add {Required,Optional}RequestBody readers.

Can we just call it `body` instead of `optBody`?