Move TabModel glue into own component

Parts of this code could be moved to C++ or even all. Currently
keeping this in qml makes development faster.