Added scanner library and startup tests

Moved barcode scanner into its own scanner.js library. Added optional hardware tests to startup screen to check connection/validity of hardware. Added additional checks in scale.js to allow reloading of scale connection, as well as feedback if a read is performed when the scale is not connected