add property-based tests for BodyParser methods

test the functor(-like) and monad(-like) laws for map, mapM, flatMap, flatMapM, validate, validateM