runUI now with record selection syntax

runUI now takes a value of type UIParams, which has all the information
about how to run the UI.  Regular usage will involve updating the
default UIParams value using record selection syntax.  runUI' uses a
default value.
NOTE: This changes the spec for runUI and runUI' and will break most
existing code (although the fix is straightforward).