minor cleanup
add close callback for websockets

WebSocket clients can close their end of the connection, and RFC 6455
requires servers to handle that message appropriately. This change
adds a new callback message for basic WebSocket callback modules. The
server now also replies to client "close" messages with a "close"
reply, as RFC 6455 requires. WebSockets documentation updated as well.

Also included a message ordering fix from Jan Bothma.
Fixed issue 87
Fix issue #88

2 changes here:

 * Revert "Flush remaining data when dynamic content is delivered"

This reverts commit d09ed3dc622be8d2b17efcd1cda552ee777fe464.
Systematically flushing data is not a good idea.

 * Add "flush" as possible return value of the out/1 function

Some clients (eg. Firefox and google-chome...) do not handle connection
close gracefully when the connection is closed during sending data; they
do not read the server response. So, when the response is important, to
warn the end-user that an error occured for example, we must be fair by
flushing data before closing the connection.
clean up rebar build problems with examples/src

Clean up some duplicate options and extra whitespace in
examples/src/Makefile, and add examples/src to rebar.config to make
sure it gets built under rebar.
Merge branch 'master' of github.com:klacke/yaws
Manage all 'special' headers of #headers{} and #outh{} records

Some headers, like 'Content-Encoding' or 'Transfer-Encoding' were
not correctly handled. These changes can be useful for everyone who
writes yaws scripts or appmods. In particular, the next version of
the reverse proxy depends on it.
Refactor the reverse proxy to manage it as a "special" appmod

Now, the reverse proxy is written like an appmod and follows the same
workflow. We forge the #urltype{} record and use Arg#arg.state to pass
the revproxy's rule before calling yaws_revproxy:out/1.

For now, the support of persistent connections with the backend servers
is disabled. But it does not affect the status of client connections.
Chunked-transfer encoded requests and responses are supported.

Despite this refactoring, yaws_revproxy is always experimental and need
more tests to be safely used in production environments.
Add the revproxy testsuite
Adapt rebar.config to rebar changes
Improve management of cached connections in the revproxy
Adapt yapp.app.src to new yaws include.mk
Merge pull request #94 from karlsson/master

Adapted yapp.app.src to new yaws include.mk
Fix bug when reentrant requests are used to return regular files

Response headers were not correctly set, in particular the Content-Length
header. This bug was fixed by refactoring the way reentrant requests are
handled.
Update gitignore file
A denial of service bug has been corrected. Multippart POST processing on the yaws server side contained a list_to_atom/1 call which potentially makes it possible for an attacker to craft a continous list of POSTs, each potentially generating a new atom. This is a backwards incompatible fix since the upload code on the server side is user code. That code now needs to look for strings instead of atoms. For example the upload.taws code in the www examples is changed. It searches now for the field "filename" instead of 'filename'
add description of "yaws --running-config"

Add description of "yaws --running-config" to the Embedded Mode
chapter of yaws.tex.
fix overfull vboxes in yaws.tex
make embedded start use docroot from sconf

Embedded startup previously used the docroot passed as the first
argument into yaws_api:embedded_start_conf even if the sconf records
passed in specified their own docroot settings. Fix the code to use
the docroot first argument only for sconf records that don't specify
their own docroots.
Added facility for specifying an #auth record when starting embedded

When giving a proplist for SC, the option {auth, Opts} can be
given. Opts is a {Key,Value} list where Key shall match the fields
in the #auth{} record. All other options ignored.