Fix: the internal roles table now works on a per-test-environment basis

Internally, Storyplayer maintains several tables of data, to track things such as hosts that have been created, and which hosts have been assigned which roles. (You can find a copy of these tables in your ~/.storyplayer/runtime.json file). 

This PR makes sure that both the hosts table and the roles table is created on a per-test-environment basis. It also fixes bugs in the management of the roles table.