Normalize IO's handling of falsy request and response bodies

This normalizes the differences in how falsy values for request and response bodies are handled in YUI target environments. A majority of the environments want request/response bodies to always be a string, so they use an empty string instead of `undefined`, `null`, etc.

This specifically fixes two issues:

* IE 10 converts a response body of `undefined` to the literal string: `"undefined"`. No other environments do this, so a change has been made to default the request body to `""` unless it has a non-falsy value.

* IO's node.js transport uses the Request npm module, which returns `undefined` when a response has no body. This normalize IO's `responseText` to an empty string when Request returns a false response body.

----

**This has been tested in all [target environments](http://yuilibrary.com/yui/environments/).**

**Note:** This depends on the following echoecho change: https://github.com/davglass/echoecho/pull/8