oref: fix race condition -- disallow new ref cache rebuild if one is already under way

Ever since commit eaa816bf, we have a potential bug whereby if you start an asynchronous ref cache rebuild, then nothing would stop you from starting another one while the first one is already going on. That leads to a race condition, as ref cache rebuilds are non-reentrant.