Fix to route dispatch bug
Simple aes crypto functions
Special ed style support for cookies
More sample middleware
Taking over the compiler options from erlang.mk
Changed spec for recv data

See README for the rationale.
Changed the argument order when calling an app with data

This breaks symetry with the call_app_with_data, which adds the data
to the end of the args list: when calling the app, the data arg is
used *before* Env. Maybe counter intertuitive. The rationale is that,
from the caller's standpoint, Data is the extra item in the call, and
should therefore be at the end of the list. For the app however, more
specific variants of "handle app" go *before* the common state Env.
This follows the convention used in gen_server, where State is always
the last argument -- and more specific arguments are listed in
front of State. Confusing? Maybe.
Convenience function for getting parsed request path

This is different from psycho_util:ensure_parsed_request_path, which
is intended for use by middleware that should modify an Env with
the parsed request path. This function is intended strictly for
consumers of the parsed request path.
recv_all corrently handling content length of 0
Using call_app rather than assuming a fun
Removed temporary io:format
Refactor the way MIME types are initialized

The previous implementation was an attempt at lazy initialization,
which of course had a horrible race condition. This implementation
requires an explict init/0 call, which must be handled by the app.
Using call_app rather than assuming a fun
Dispatch to modules by path
Using parsed path for static content lookup

Query strings will end up in the local path without this.
Simple form data validation

More to be added, but this is a fair start I think.