halui: cope better when multiple inputs are active
halui: cope better when multiple inputs are active

As originally structured, halui checked each input pin in turn, issuing
nml commands when the new pin value indicated an action was requested.
Since an nml command can take a substantial amount of time to execute,
this led to undesired behavior when multiple inputs were activated
at the same time, and then deactivated before all the nml commands were
issued. (e.g., emulating 'home all' by hooking all individual joint
homes to a single signal)

By snapshotting the state of all hal pins at the start of an update
cycle, the window of opportunity for two pins connected to the same
signal to read differently is greatly reduced.

This also gets rid of unneeded address-of and dereference operations
where possible, particularly as arguments to check_bit_changed.

cdsteinkuehler/linuxcnc,ianmcmahon/linuxcnc-mirror,EqAfrica/machinekit,ianmcmahon/linuxcnc-mirror,Cid427/machinekit,cdsteinkuehler/MachineKit,bobvanderlinden/machinekit,aschiffler/linuxcnc,ArcEye/machinekit-testing,cnc-club/linuxcnc,cdsteinkuehler/linuxcnc,bmwiedemann/linuxcnc-mirror,mhaberler/machinekit,narogon/linuxcnc,kinsamanka/machinekit,cdsteinkuehler/linuxcnc,narogon/linuxcnc,RunningLight/machinekit,bmwiedemann/linuxcnc-mirror,RunningLight/machinekit,mhaberler/machinekit,cdsteinkuehler/linuxcnc,ikcalB/linuxcnc-mirror,unseenlaser/machinekit,ikcalB/linuxcnc-mirror,jaguarcat79/ILC-with-LinuxCNC,araisrobo/linuxcnc,kinsamanka/machinekit,kinsamanka/machinekit,RunningLight/machinekit,cdsteinkuehler/MachineKit,strahlex/machinekit,RunningLight/machinekit,araisrobo/machinekit,RunningLight/machinekit,mhaberler/machinekit,strahlex/machinekit,ArcEye/MK-Qt5,jaguarcat79/ILC-with-LinuxCNC,araisrobo/machinekit,jaguarcat79/ILC-with-LinuxCNC,ikcalB/linuxcnc-mirror,bobvanderlinden/machinekit,strahlex/machinekit,cdsteinkuehler/MachineKit,mhaberler/machinekit,aschiffler/linuxcnc,EqAfrica/machinekit,ArcEye/MK-Qt5,unseenlaser/linuxcnc,unseenlaser/machinekit,Cid427/machinekit,cnc-club/linuxcnc,ArcEye/machinekit-testing,bobvanderlinden/machinekit,narogon/linuxcnc,jaguarcat79/ILC-with-LinuxCNC,ArcEye/machinekit-testing,bmwiedemann/linuxcnc-mirror,araisrobo/machinekit,strahlex/machinekit,ArcEye/MK-Qt5,ArcEye/MK-Qt5,bmwiedemann/linuxcnc-mirror,RunningLight/machinekit,Cid427/machinekit,ianmcmahon/linuxcnc-mirror,araisrobo/machinekit,bmwiedemann/linuxcnc-mirror,cnc-club/linuxcnc,ianmcmahon/linuxcnc-mirror,araisrobo/machinekit,mhaberler/machinekit,ArcEye/MK-Qt5,bobvanderlinden/machinekit,Cid427/machinekit,EqAfrica/machinekit,narogon/linuxcnc,strahlex/machinekit,unseenlaser/linuxcnc,EqAfrica/machinekit,araisrobo/linuxcnc,ArcEye/machinekit-testing,cnc-club/linuxcnc,bmwiedemann/linuxcnc-mirror,bmwiedemann/linuxcnc-mirror,Cid427/machinekit,Cid427/machinekit,EqAfrica/machinekit,unseenlaser/linuxcnc,mhaberler/machinekit,Cid427/machinekit,ArcEye/machinekit-testing,ikcalB/linuxcnc-mirror,unseenlaser/machinekit,araisrobo/machinekit,cdsteinkuehler/linuxcnc,cnc-club/linuxcnc,ianmcmahon/linuxcnc-mirror,ArcEye/machinekit-testing,araisrobo/linuxcnc,cdsteinkuehler/MachineKit,mhaberler/machinekit,narogon/linuxcnc,kinsamanka/machinekit,kinsamanka/machinekit,aschiffler/linuxcnc,strahlex/machinekit,bobvanderlinden/machinekit,ikcalB/linuxcnc-mirror,unseenlaser/linuxcnc,bobvanderlinden/machinekit,araisrobo/machinekit,aschiffler/linuxcnc,cdsteinkuehler/MachineKit,cdsteinkuehler/linuxcnc,unseenlaser/machinekit,mhaberler/machinekit,ArcEye/machinekit-testing,unseenlaser/machinekit,bobvanderlinden/machinekit,kinsamanka/machinekit,EqAfrica/machinekit,ianmcmahon/linuxcnc-mirror,aschiffler/linuxcnc,araisrobo/linuxcnc,cnc-club/linuxcnc,ArcEye/machinekit-testing,EqAfrica/machinekit,bobvanderlinden/machinekit,cnc-club/linuxcnc,ArcEye/MK-Qt5,cdsteinkuehler/MachineKit,EqAfrica/machinekit,Cid427/machinekit,ArcEye/MK-Qt5,ianmcmahon/linuxcnc-mirror,RunningLight/machinekit,unseenlaser/machinekit,kinsamanka/machinekit,ikcalB/linuxcnc-mirror,ikcalB/linuxcnc-mirror,jaguarcat79/ILC-with-LinuxCNC,unseenlaser/linuxcnc,RunningLight/machinekit,unseenlaser/machinekit,unseenlaser/machinekit,araisrobo/machinekit,ArcEye/MK-Qt5,araisrobo/linuxcnc,araisrobo/machinekit,strahlex/machinekit,kinsamanka/machinekit