charmstore/router: generate http.StatusNotFound appropriately

This generates messages (and error codes) as expected by the API specification.
So the only time now that we return StatusInternalServerError is when errgo.Cause(err) occurs, otherwise it's *NotFound err? 
:+1: