Fixing the negative blame associated with provide/contracted identifiers.
Fixing the negative blame associated with provide/contracted identifiers.

The contract system now keeps track of three points of blame: the positive
blame, assigned to the provider of a contracted value; the negative blame,
assigned to the receiver of a contracted value; and the user "blame",
assigned to the party that actually misuses the value.  While the latter
is not really blame, as blame is not assigned to that party when that party
is not either the negative or positive party, it's useful information for
programmers when debugging.

For provide/contract, the negative party should be the first module to
require an identifier provided via provide/contract.  What was previously
the negative party is really the user, and is now handled as such.

mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket,mafagafogigante/racket