pass the empty body into the controller

This allows POST and PUT reqeusts without content-body. The
default body: None will be passed into the controller, and
will be validated in the controller, so it fixes the bug 1253089.

When the request method is GET or DELETE, the content-type
and body in the request will be ignored
.
When POST or PUT a request with body but without content-type,
it will return "unsupported the content-type provided" with
response code 400.

side-effect: The method which handle the request method: POST
or PUT must have the parameter: body. Otherwise, it will raise:
"got an unexpected keyword argument 'body'"

And some tests are updated due to this change.
The parameter: body are also added for some actions which are
mapped to the method: POST or PUT.

Closes-bug: 1253089

Change-Id: Icda59feed439625bbbe079444feeda57576ef131
Merge "pass the empty body into the controller"