Tests: add test case base class with common fields
Tags: use dedicated tag removal method for unlinking

Using this function instead of deleting the links manually allows us to
move the code for the potential removal of the link itself (if not used
anymore) there. This is done by this commit as well. It makes testing
much easier and reduces code redundancy.
Tests: add test for the removal of tags

This test makes sure the actual tag class instance is also removed after
the last link to a tag is removed.