Standardize on a rebar.config dep format to reduce conflicts
Roll webmachine version 1.10.5
Encode the error response before sending it.

Pass the response from ErrorHandler:render_error through encode_body before
sending it.  This means that if the client has sent an appropriate
Accept-Encoding or Accept-Charset header then they will get the error
response encoded correctly.

As part of this, we have to handle the situation where a charset or encoding
hasn't yet been chose (or doesn't match one of the available options) even
though the resource specifies some.  This happens if the error response is
triggered before the encoding/charset header processing.
Merge pull request #173 from basho/encode-error-body-rebased

Encode the error response before sending it.
ignore emacs backup files
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.
rebase yaws branch to develop branch

The wm_integration_test_util and decision_core_test tests are currently
mochiweb-specific so this commit temporarily ifdef's them out for yaws and
cowboy.
fix new_request function for mochiweb
fix incorrect argument passed to webmachine_request:send/3
fix yaws support for converting headers to list
add start/1 to webmachine_ws, store web server in env

Add webmachine_ws:start/1 to provide a portable start function for
applications that don't want to be tied to a specific web server startup
function.

Make webmachine_ws:get_webserver_mod/0 first check the application env for
the name of the underlying web server. If not found, check the operating
system process environment, and if found there, store it, or a default of
mochiweb if not found, into the application env.
add make_headers/1 and headers_to_list/1 to webmachine_ws

Add webmachine_ws:make_headers/1 and webmachine_ws:headers_to_list/1 for
web server portability purposes.
web server stop functions now take a name