FIX: Manually Compact RowIDs in Fragmented Catalogs

Turns out that SQLite does not re-assign rowids on `VACUUM` anymore. This adds some SQL-magic to manually compact rowids if a catalog is defragmented. I am open to suggestions how to achieve this compaction, since I am not sure if that is the most efficient way to do it.

Additionally it extends the appropriate test case to validate the behaviour.