* Added PMW3901 (flow) sensor support.
Includes general-purpose check for whether this SPI port is clocked.
* components/src/motion/pmw3901/pmw3901.ads: new.
* components/src/motion/pmw3901/pmw3901.adb: new.
* components/src/motion/pmw3901/pmw3901-is_clocked.adb: new. The
check for the associated SPI port being clocked is implemented
as a separate because it really belongs in the Device package.
* PMW3901 driver no longer depends on STM32.
* components/src/motion/pmw3901/pmw3901.ads: remove dependency on
STM32, replace by HAL equivalent.
(Initialize): replace precondition using Is_Clocked to 'not
Is_Initialized'.
(Is_Clocked): removed.
* components/src/motion/pmw3901/pmw3901.adb: likewise.
* components/src/motion/pmw3901/pmw3901-is_clocked.adb: removed.
* PMW3901 copyright/clarity updates.
* components/src/motion/pmw3901/pmw3901.adb: Updated copyright
notice, as requested.
* components/src/motion/pmw3901/pmw3901.ads: Likewise.
(Motion's rep spec): moved to private part, to reduce clutter.
* components/src/range_sensor/VL53L0X/vl53l0x.ads
(Read_Range_Single_Millimeters): made into a generic requiring a
procedure Delay_Milliseconds.
* components/src/range_sensor/VL53L0X/vl53l0x.adb
(Read_Range_Single_Millimeters): calls Delay_Milliseconds rather
than an explicit 'delay until'.
Avoids endless loops waiting for measurement to be indicated.
* components/src/range_sensor/VL53L0X/vl53l0x.ads: Added
postconditions to check that GPIO Functionality has been set as
specified to Static_Init, Set_GPIO_Config.
Added preconditions to check that GPIO Functionality is
New_Sample_Ready (i.e. that there will be such an indication) to
Perform_Ref_Calibration, Start_Continuous,
Start_Range_Single_Millimeters, Range_Value_Available,
Read_Range_Single_Millimeters, Set_VCSEL_Pulse_Period_Pre_Range,
Set_VCSEL_Pulse_Period_Final_Range, Set_VCSel_Pulse_Period.
(Get_GPIO_Functionality): new.
* components/src/range_sensor/VL53L0X/vl53l0x.adb
(Get_GPIO_Functionality): new.
A translation of the Crazyflie Flow Deck (v1) support code.
* components/src/range_sensor/VL53L0X/vl53l0x.ads (Read_Revision): new.
(Start_Continuous): new.
* components/src/range_sensor/VL53L0X/vl53l0x.adb (Read_Revision): new.
(Read_Range_Single_Millimeters): use 1 ms delay in loop while waiting
for Range_Value_Available.
(Start_Continuous): new.
Instead of returning False when a configuration is not supported, users
can call a function beforehand to know if it is supported. The
capability is also now a precondition of the setup procedures.