Added PSO fence insertion.

* Generalized functions in TsoFencins namespace to work for PSO as well
  - get_transition_from_machine
  - pair_writes_with_updates
  - find_cycles (still only finds TSO cycles though)

* Added the PsoFencins namespace with alternate versions of TsoFencins functions
  that does not work for both, including a separate FenceSet class

* Changed the common interface of FenceSet classes
  - removed to_string
  - added print(textstream, jsonstream), bool empty()
Added PWS option to GUI.