Add ST version of MonadObjective.

ST is convenient to have as a base Monad because of its totally-encapsulated
effects.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>