Return 422 instead of 500 when handling body

Using a 4xx error would be more appropriate for this since the server is parsing the content from the client and needs to let the client know the data is malformed (not the actual HTTP request but i.e. JSON semantics). The definition for 422 is described in [RFC 4918](https://tools.ietf.org/html/rfc4918#section-11.2)
Do not crash if connection is closed while sending static file
Fix handler state change in cowboy_rest
Add HTML5 Video Example to the static example
Merge branch 'fix_change_state' of https://github.com/nevar/cowboy
Remove cowboy_dispatcher

Types and code are moved to cowboy_router. The match/3 export
from cowboy_dispatcher isn't available anymore as it is called
internally.
Do not transform URIs to Unicode
Expose uppercase binary converter
Update handler callback specs

There is one another {upgrade, ...} quintuple allowed as the result of
Handler:init call, somewhy not mentioned in the callback specifications.
New routing

Ultimately few things change, it's mostly just a nicer syntax and
slightly different expectations. The name of the value `dispatch`
did not change, because the previous dispatch values will now fail
if the code is not updated to using `cowboy_router:compile/1`.

No constraints have been implemented in this commit.
Add the 'int' constraint
Add the 'function' constraint
If a binding is reused, we check that values are identical

This is more for consistency than anything.
Update roadmap
Update Ranch to 0.6.1
Makefile: only recompile files newer than the .app
Merge branch 'fix/callback_specs' of https://github.com/keynslug/cowboy
Add a section about closing the connection in the guide
Do not attempt to skip the request body on Connection: close
Fix {cowboy_req, resp_sent} potentially leaking in loop handlers