switched indexing system from continuous batch style to allow from
arbitrary indexing.

Interestingly, this required an inversion of the skills_to_row matrix due
to how numpy seems to handle slicing and memory access. i.e. what is
continuous in memory and what is not. Taking out the continuity seems to
slow down the program a bit but it's not terrible.

Other things:
* deleted old fab file
* cleaned up naming a little bit in driver.py
* moved make_shared into utils because I was using it too many times for a local function
leaving batch size as constant, there's really no reason to change it much