feat: task switch and collaborative scheduling
- 将应用程序加载移至 app_loader
- 将用户程序栈和内核栈初始化及相关操作移至 app_loader
- 分离 AppManager 为 AppLoader 和 TaskManager, 实现任务协作式调度
- AppLoader 负责加载应用程序, 存放应用程序的信息
- TaskManager 负责管理应用程序的运行调度
- 将静态全局变量 APP_LOADER 和 TASK_MANAGER 移至各自模块
- 实现应用程序任务上下文, 保存切换前的寄存器状态
- sched_yield 系统调用