removing unnecessary liftIO.
refactoring sendResponse.
implemanting Date.
adding responseHeaders to WAI.
adding Date in sendResponse.

This is big refactoring. All tests are passed.
But we need to pay attentions.