Add drop-down selectors for bridge/controller URIs
[WIP] Add first draft of controller factory GUI
Add ControllerFactoryProxy class
[WIP] Add created controller to table on Foo click
Show count of pending iterations in table
Colour iteration column blue when iters pending
Retrieve list of running controllers on load

Rather than just managing controllers created through the GUI, retrieve list of
running controllers on load and pre-populate the controller table list.

Add a `kill` button to each controller row in the table to kill the
corresponding remote modifier controller process.
Refactor controller proxy classes into class files
Add selection checkboxes to controller rows

Add the following functions:

 * `selected_process_ids`
 * `selected_process_infos`
 * `apply_to_selected_placements`

Add `PlacementCollector` class to collect the current block positions state
from a set of modifiers, specified by a list of corresponding process
information objects containing the following keys:

 * `process_id`
 * `controller`

The `PlacementCollector.collect(on_recv)` method requests the current block
positions state from each process provided to the constructor and calls
`on_recv` when finished, passing a list of objects with the following keys:

 * `process_id`
 * `block_positions`

This handles the intermediate asynchronous calls to simplify gathering
placements from several modifier controller processes.