Implemented a Choice-based version of 'funpow'.
Replaced exceptions with the choice workflow in some functions in drule.fs.
Fixed some functions in drule.fs which had already been modified to use the choice workflow so they correctly propagate errors.