Added options to PwsConstraint.

use_serialisations_only_after_writes reduces the number of transitions, speeding up analysis.
use_shortcut_update_serialise adds locked and slocked variants of all write transitions (although does not disable the unlocked write from serialising/updating immediately instead).
Fix bug in SbTsoBwd.

The bug caused updates to appear after transitions by processes with lower Pids
than the process doing the update even though they appeared after the update of
their issuing process.
Fix bug in intersection_iterator causing dereference of end iterator.
Fixed memory leak in PwsPsoBwd.
Reversed vectors in PwsConstraint tests for readability.
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.