Fix batch label operation in console

Fixes #46. Dirty buffers are not auto refreshed for now. But a messge suggesting pressing `@` to refresh manually will be printed to user.

The service thing represents outer bound functionality of the app, which is UI-independent and unit-test-able. In the long term the `LabelService` could become the backend of `bin/sup-tweak-labels` as well, making things DRY.

Besides, this patch introduces [RR] as the mocking library for isolated testing. Full integration testing is useful as well, but it's really hard to setup full integration for now. And `minitest/mock` is just tedious to work with.

I'm about 1 or 2 more patches away from putting myself into working on sup2 :)

[RR]: https://github.com/rr/rr