Obey HTTP spec, use HTTP 404 for not-found responses

See issue #53 for full details.