multiple body formats

This is a first draft to accept multiple content-types.
refs #544