Implement task model and basic comm. method with NLP parser

- [ ] Implement task model using builder pattern. `task_model.h` and `task_builder.h`
- [ ] Define some query schema from NLP parser. `query.h`
- [ ] Define a common interface for all command `internal/action.h`
- [ ] Define a singleton state to store various things (undo stack, registered command, etc) `internal/state.h`