More expressive error actions

Include assigning to arguments.  This code doesn't fire often due to
the size of basic blocks (and since we only really look at nearly
terminal blocks).
Include a new error analysis option

This option forces the analysis to never consider 0 as an error code
(to generalize from).  It will still be reported if an error is
definitely transformed into a zero.
Improve link handling in generated html reports

Wasn't stripping off enough bitcasts, so some links were missed.
Apply the transitive error analysis to all functions

Transitive error returning functions might not return other error
constants.  The prior version of the analysis only looked at
functions that returned error constants.

This change just checks every function for transitive error returns.
More carefully handle casts of called functions in the error analysis
Add a module-level success code report