fix(ResourceFacotry): use Content-Type header or default value

If Accept header is missing (accepts all responses */* etc.)
resource is sent with NULL Content-Type. ResourceFactory now
try to use request Content-Type header or default value (JSON),
when Accept header is missing or if it is invalid.

resolves #16
fix(ApiRequestFactory): allow override method only in POST request

resolves #18
feat(InputFactory): throw exception if input is malformed

resolves #19
feat(ResourcePresenter): catch input exceptions and send error response

resolves #19