Fix #925 (misleading 404)

When a foreign key is malformed (i.e. not a URI), get_via_uri raises NotFound,
which causes _handle_500 to return a 404. The NotFound error is now
appropriately handled in resource_from_uri to raise an ApiFieldError, resulting
in a more correct 400 response.
Return 400 if foreign key matches multiple resources

If a URI matching multiple resources (e.g. the URI corresponding to the
get_list view) were provided as the foreign key of an object, an uncaught
exception would cause a 500 to be returned. MultipleObjectsReturned is now
appropriately handled in resource_from_uri to raise an ApiFieldError, which
results in a 400 being returned.
Fix an error message