extend (and cleanup) the return code semantic in the arc_fetch callback

allow to notify back if the value should be kept in the cache or not
and handle the selective caching for items downloaded 'synchronously'
(it was implemented only for asynchronous fetches)