diamondd: Fix result cache poisoning on failed attribute read
diamondd: Fix result cache poisoning on failed attribute read

If a filter tries and fails to read an object attribute, that failure
will be a factor in its drop decision but was not being recorded in the
result cache.  If subsequent searches did produce the input attribute, we
were then failing to rerun the filter.  Record failed attribute reads in
the result cache and update cache resolution logic to consider them.

cmusatyalab/opendiamond,cmusatyalab/opendiamond,cmusatyalab/opendiamond,cmusatyalab/opendiamond,cmusatyalab/opendiamond