Created SplitflapTask and moved most code out of main.cpp
Renamed Display->DisplayTask
Added public getState() accessor to SplitflapTask to read the current state
Created SemaphoreGuard as a helper lock guard for FreeRTOS semaphore/mutexes - allows scope-based locked sections rather than explicit and error-prone lock/unlock calls
Implemented the most basic real display code showing splitflap state
getState()
accessor to SplitflapTask to read the current state