utils.count_free_cores: find number of spare cores
don't block on multiplotting

    - wait until all plots are submitted for all states, then block
gw_summary: implemented bulk frame-data reading

   - can optimise frame reading with frameCPP by reading all channels at
     the same time