param: implement RW locking
param: implement RW locking

This allows concurrent read access, which are much more common; reducing
potential lock contention and increasing concurrency.

Taking a lock is expensive, and the reader lock is now even more expensive.
An RCU synchronization scheme would reduce the overhead of the readers to
increasing/decreasing an atomic counter.
Thus this should only be an intermediate step until we move towards RCU.

Tested on SITL & Pixracer.

dagar/Firmware,dagar/Firmware,krbeverx/Firmware,PX4/Firmware,Aerotenna/Firmware,jlecoeur/Firmware,PX4/Firmware,krbeverx/Firmware,jlecoeur/Firmware,dagar/Firmware,acfloria/Firmware,acfloria/Firmware,dagar/Firmware,krbeverx/Firmware,acfloria/Firmware,krbeverx/Firmware,krbeverx/Firmware,jlecoeur/Firmware,jlecoeur/Firmware,mje-nz/PX4-Firmware,jlecoeur/Firmware,dagar/Firmware,dagar/Firmware,jlecoeur/Firmware,acfloria/Firmware,mje-nz/PX4-Firmware,mje-nz/PX4-Firmware,mcgill-robotics/Firmware,PX4/Firmware,Aerotenna/Firmware,mje-nz/PX4-Firmware,Aerotenna/Firmware,mje-nz/PX4-Firmware,mcgill-robotics/Firmware,mcgill-robotics/Firmware,acfloria/Firmware,dagar/Firmware,Aerotenna/Firmware,PX4/Firmware,acfloria/Firmware,acfloria/Firmware,mcgill-robotics/Firmware,Aerotenna/Firmware,mje-nz/PX4-Firmware,PX4/Firmware,PX4/Firmware,Aerotenna/Firmware,krbeverx/Firmware,mje-nz/PX4-Firmware,mcgill-robotics/Firmware,krbeverx/Firmware,mcgill-robotics/Firmware,jlecoeur/Firmware,mcgill-robotics/Firmware,Aerotenna/Firmware,jlecoeur/Firmware,PX4/Firmware