Major code refactoring
Split QML into separate component files. Clean up model to be a singleton and testable. Add unit testing for C++ components. Switch from zbar to qzxing for QR handling. Add error dialog for invalid QR code scans. Add a capture zone rectangle for the scan page.