libblock: Use pthread_once() for initialization

Enabling and disabling preemption as done for single core will not work
for SMP.  In the bdbuf initialization preemption handling can be avoided
in general by using pthread_once().
arm: Add ARM_MULTILIB_HAS_BARRIER_INSTRUCTIONS