Merge tabinfo restructuring

This is the merge of the old tabinfo_restructuring with the new master. I added some unit tests and fixed some bugs. Please test! Fixes #60, #85 and #103.

> I wonder if there is a way to verify with git that a merge commit contains no other changes.

Using TortoiseGit I noticed that the merge actual consists of two parents. One contains the actual merge, the other the changes during the merge. Just as promised I also interspersed some changes. Have fun finding them :P