Implement operator pending mode and text objects

:light_rail: In progress :light_rail:

This PR adds operator pending mode. It also refactors how commands are registered and how operations are pushed and processed.

- [x] `i w`
- [ ] `a w`
- [ ] sentence text objects (`i s` and `a s`)
- [ ] paragraph text objects (`i p` and `a p`)
- [ ] quote text objects (`i "` etc)
- [ ] bracket text objects (`i (` etc)
- [ ] indent text objects (`ii` and `ai`)

Closes #177