The cross origin XHR proxy does not entirely handle errors (gracefully).

When it was initially created (i.e. re-written) this was an oversight
that was made (as it seemed quite solid). This is not true. Stuff can go
bad (especially if server errors out continually)... so, let's fix it!

There are two ways errors can happen.

1. Synchronously thrown errors when initializing a client request.

Example: passing an invalid URI (i.e. a local '/foo/bar' url) will
cause an exception to be thrown (which could possibly crash the app).

2. Errors during the (async) request itself (notified via error event).

Example: Passing in a URL that fails during DNS lookup will raise an
`error` on the client request object (ex: http://googleeee.com).

Note: Since errors were already captured by `request` and passed
into the callback (as you can see), the XHR proxy already gracefully
handled errors, but that was never taken advantage of when using
`request.pipe`. This cleans that up so it always look for an error
object and responds with a 500 (and error message), if so.
Removed call to widgetConfig.initialize

This was a duplicate call and not needed.
Added call to console.clear after boot

This was done to remove any console logs that show up
before Ripple is fully booted and can be confusing to the
developer.
Merge branch 'console.cleanup' into next
There is lack of CORS (XHR proxy) support for certain HTTP verbs.

This (presumably) adds support for the rest of the verbs, which were
left out when the proxy was re-written :-( (there definitely could have
been more testing in place for this, alas, resources..).

This fixes GitHub issue:

https://github.com/blackberry/Ripple-UI/issues/693
The OPTIONS verb was left out in the previous (XHR proxy fix) commit.

It is also an HTTP verb that should be supported by CORS (in the xhr
proxy).

I hastily pushed commit 8462f02fe161f8bf75379a933f62ccefd26903b9
and missed this.
Cross origin (JSON based) XHR proxy requests are not forwarded properly.

The bodyParser middleware would parse the JSON properly, however the
`form` option in `request` was being used, and it was sent as a
'application/x-www-form-urlencoded' request. Instead it should be
stringified and set to the `request`'s `body` option.

This fixes another issue pointed out in:

https://github.com/blackberry/Ripple-UI/issues/693
There is no JS test coverage for this project.

Usage: `jake test:cov`

This uses CoverJS: https://github.com/arian/CoverJS

CoverJS provides per statement code coverage. Currently, only coverage
generation is supported for the nodejs based runner (and not the browser
test runner).

When you run `jake test:cov`, `test` and `lib` code is instrumented and
copied to a `cov` directory in the root of the project, and executed.
When they have completed, a web based report is generated for viewing.

Note: This is a first pass at creating insight into the test coverage
for this project, and could be added onto (or even changed), whichever
makes the most sense. i.e The web based report is hackily changed to
be easier to digest.

Note: This only works for the node based runner (and not `jake btest`).