Migrate to-do UI to Vue
In order to implement #332577, the to-do UI has to be migrated to Vue because querying the to-do items on every page load causes a significant performance impact (see this discussion).
This has the added benefit of standardizing the to-do list dashboard code in Vue.