switched to event-based processing

... instead of waiting for repo/stores to be fully populated

this will require adjustments in UI widgets' initialization
refactored repo and board initialization

eventually, the repo should determine internally which states are
available (derived from existing task states plus a pre-defined list
read from a `.meta` file)