Fix the behaviour of Tag Objects

This fixes three issues I am aware of:

* The behaviour outlined in #192, related to the cursor being inside of a tag
* Vim searches for an opening tag first, then looks for a closing tag to match it. Originally the Vrapper behaviour was the opposite, this fixes that. This only really matters in cases like the test `test_dit_interweaved`
* Adds support for testing and some tests for tags.

I believe I added tests for all the cases that can come up, but please take a look and make sure there aren't any I missed :) There's also one case that I wrote a test for and marked as "Ignore", since it's pretty tricky and I'm not sure how to approach it yet.

The general algorithm is the same as the one that was there before, this pretty much just handles some edge cases and other things.