changes to get webmachine running on yaws

Getting webmachine eunit tests to pass using yaws as the underlying web
server rather than mochiweb required the changes listed below. As of this
commit, though, more testing, especially with actual webmachine apps, is
needed. The only testing with a real app has been to generate a new
webmachine app to use yaws and ensure that its "/" page loads correctly in
a browser.

* Changed most direct calls to mochiweb modules to call a
  webserver-specific module instead, and added such modules for both
  mochiweb and yaws. Some calls to mochiweb modules remain, but only for
  calls to utility functions. Because of this, mochiweb is always treated
  as a dependency.

* Modified rebar support to add a rebar.config.script file to manage
  dependencies. To use yaws, users can set the OS environment variable
  WEBMACHINE_SERVER=yaws before running rebar to build or test
  webmachine. The rebar.config.script file looks for that environment
  variable to know whether or not yaws should be added as a dependency.

* Modified the wm_reqdata record type to add a field containing the name of
  the webserver-specific module to use for web server operations. There are
  a few places where this information isn't available; in those spots, none
  of which appears to be performance-critical, the code checks the OS
  environment for the WEBMACHINE_SERVER variable to determine the right
  webserver-specific module to use.

* Modified the new_webmachine.sh script to accept a -s option allowing the
  user to specify yaws as an alternative web server. If no option is
  supplied, mochiweb is used. Also modified a few of the application rebar
  templates to use a new {{webserver}} variable, including the start.sh
  template which now sets the WEBMACHINE_SERVER OS environment variable.

* Add a rebar.config.script template to priv/templates that changes the
  webmachine dependency for apps created by new_webmachine.sh to the
  vinoski/webmachine fork if yaws is the selected web server.

* Add a new variable webserver_app to priv/templates/wmskel.template to
  allow the dependencies in a new webmachine application's .app file to be
  set properly for the chosen web server.

With these changes, yaws can be used only as an embedded web server, but
more changes could be useful to allow webmachine to treat yaws as an
included application, or to allow an existing yaws application to use
webmachine as a yaws appmod or yapp.
Support for cowboy as a backend for webmachine
Make running tests-per-backend easier from the Makefile
Make the Server header reflect the backend name and version
fix handling of schema atoms for yaws
additional changes to support alternative web servers

* Let mochiweb utilities handle the urlsplit_path/1, parse_qs/1, and
  parse_cookie/1 functions, rather than making each web server supply those
  utilities.

* Change yaws code to use a dispatcher rather than an appmod.

* Various code cleanups.
Add wrq:req_headers_to_list to expose headers in a normalized form

This avoids the need for something like
mochiweb_headers:to_list(wrq:req_headers(RD)), which breaks the backend
abstration.
use new Yaws merge_header capability

To properly handle multi-value headers, especially Set-Cookie headers, use
the new Yaws yaws_api:merge_header function.