change default content-type to application/hal+json

add application/hal+json to 'Accept' header
add custom middleware for json+hal