Parse URL-encoded body with PUT requests

Also parses for PATCH requests, but it's unlikely those will ever be sent as URL-encoded.

Fixes #671.