make couch_httpd a full couch application

With this change, the HTTP API is now handled by its own erlang
application and supervision. It also improved the way you can reload the
configuration and the modules. Now upgrading a listener or its
configuration is first removing it from the supervsion then start the
new process with the new configuration. The behaviour is similar tot the
one you have in nginx.

Note: this change for now breaks the test, but the changes in the test
suite should happen in a second commit since it is also require a change
to the way you can restart the couch app.