Ignore NOOP addTag requests.
Move search testing to api module.
Better async building blocks.
Moved searching out of Buffer, into Search.

This reorganizes things a bit as well to allow one to find the first match,
forward and backward, and all the matches, separately. This API is needed for
the (in-progress) i-search revamp.

The current bits seem like a rather simple wrapper around Buffer.findForward/
Backward, but when we eventually support multi-line search, the Search class
will carry its weight.
Revamped isearch to do most work in background.

I expected this would just preserve interactive performance for big searches,
but it also inexplicably seems to wildly speed up search performance as well.
I'm not entirely sure what's going on there, but hopefully it's not due to a
sacrifice of correctness!