Defined the Protected type alias for Choice, so we can use it (later) to clean up some type signatures and avoid the need to define a "raw" and "protected" version of each type, e.g., 'thm0' and 'thm'.
Replaced Choice.List.reduceBack with the new implementation from ExtCore.
Implemented Choice.compose/composeBack functions (which will be included in the next version of ExtCore).
Minor adjustments to a couple of functions in the Choice module for consistency with the other functions in the module.
Adapted some functions in basics.fs to use the choice workflow instead of exceptions.