V2 prototyping - New ResponseWriter and Middlewares

rest.ResponseWriter is now an interface.
This provides more flexibility, and the ability to write middlewares that
wrap the ResponseWriter.

All the http.middlewares are now rest.middlewares.
And the rh.env is now based on rest.Request instead of http.Request
Move the hidden global "env" to the Request object.
Reenable the auto-fail test
Docstrings
Make Flush call WriteHeader

Otherwise, JSON specific headers are skipped.
This header is now set by WriteHeader
docstrings
Make the doc example use the v2 API
Assemble the middleware at init time.

3% perf improvement
Go style docstrings
[Breaking change] Status is now public, and the user has to define the route.

An example will be provided.
This decreases the complexity while allowing the user to wrap a middleware around
this particular endpoint. An auth middleware for instance.
Fix a bug in the ResponseWriter instantiation, and add a test
Reference the new status example

(actually in the v2-alpha branch right now)
Go style docstrings
Redefine the notion of middleware and convert the internal middlewares.

A middleware is now defined like this:

type Middleware interface {
	MiddlewareFunc(handler HandlerFunc) HandlerFunc
}
README update
Reference the example
go style fix
Capitalize the Env variables.

Avoid typo, and make it looks like os env variables.
Add the AuthBasicMiddleware + tests